卷积函数 vDSP_imgfir 返回 0 值

Posted

技术标签:

【中文标题】卷积函数 vDSP_imgfir 返回 0 值【英文标题】:Convolution function vDSP_imgfir returning 0 values 【发布时间】:2013-02-14 21:41:30 【问题描述】:

我正在尝试在 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】:

我认为您缺少对卷积的一些理解。我建议在***上查找它。当您将矩阵与内核进行卷积时,结果是另一个与原始矩阵大小相同的矩阵。上面,当您的输入矩阵为 42 个元素时,dst 仅分配 6 个元素。 dst 也应该是 42 个元素。

对于卷积,我建议您查看 vImageConvolve_Planar8 或 vImageConvolve_PlanarF。它的构建要好得多,并且可以处理许多角落边缘场景。

希望对你有帮助

【讨论】:

你是对的,我理解错了什么样的卷积返回 vDSP_imgFir。非常感谢!

以上是关于卷积函数 vDSP_imgfir 返回 0 值的主要内容,如果未能解决你的问题,请参考以下文章

conv2()卷积函数

OpenCV基础API函数三

Python中概率密度函数的更快卷积

matlab怎么表示卷积

两个冲击函数作卷积怎么解?

Excel Vlookup函数返回值为0,请问原因