2013-02-14 4 views
1

매트릭스 컨볼 루션을 수행하기 위해 iphone (iOS 5.1)에서 Accelerate 프레임 워크를 사용하려고합니다. 그러나, 내가 함수를 실행할 때Convolution 함수 vDSP_imgfir이 0 값을 반환합니다.

double *dst = calloc(2*3,sizeof(double)); 
    double A[6*7]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; 
    double B[5*5]={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}; 
    vDSP_imgfirD(A, 6, 7, B, dst, 5, 5); 

나는 단지 결과 포인터에 0을 얻는다. 왜 이런 일이 일어날 수 있겠습니까? 비슷한 문제가있는 곳을 찾지 못했습니다.

대단히 감사합니다!

답변

1

컨볼 루션에 대한 이해가 부족하다고 생각합니다. 나는 위키피디아에서 그것을 찾아 볼 것을 권한다. 커널을 사용하여 행렬을 컨벌루션 할 때 결과는 원래 행렬과 크기가 같은 또 다른 행렬입니다. 위의 dst는 입력 행렬이 42 개 요소 일 때 6 개 요소 만 할당합니다. dst는 42 개 요소 여야합니다.

나는 vImageConvolve_Planar8 또는 vImageConvolve_PlanarF를 보는 회선에 좋습니다. 그것은 훨씬 잘 구축되어 많은 모서리 가장자리 시나리오를 처리합니다.

희망이 당신이 바로, 내가 vDSP_imgFir을 반환 회선의 종류를 잘못 이해하고있다

+0

하는 데 도움이됩니다. 고마워요! – kahlo