卷积函数vDSP_imgfir返回0值

时间:2013-02-14 21:41:31

标签: iphone image-processing accelerate-framework vdsp

我正在尝试在iphone(iOS 5.1)上使用Accelerate框架来进行矩阵卷积。但是,当我运行该功能时

    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 个答案:

答案 0 :(得分:1)

我认为你错过了对卷积的一些理解。我建议在维基百科上查找。当您使用内核对矩阵进行卷积时,结果是另一个与原始矩阵具有相同大小的矩阵。在上面,当输入矩阵是42个元素时,dst只分配6个元素。 dst也应该是42个元素。

我建议您查看vImageConvolve_Planar8或vImageConvolve_PlanarF的卷积。它构建得更好,并且可以处理许多角落边缘情况。

希望这有帮助