我正在尝试使用iphone上的加速框架(iOS 5.1)来做矩阵卷积。但是,当我运行该函数时
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。你知道为什么会发生这种情况吗?我没有发现任何类似的问题。
非常感谢!
发布于 2013-02-15 03:41:07
我认为你缺少对卷积的一些理解。我推荐在维基百科上查一查。当您将一个矩阵与一个核进行卷积时,结果是另一个大小与原始矩阵相同的矩阵。上面,当你的输入矩阵是42个元素时,dst只分配6个元素。dst也应该是42个元素。
对于卷积,我建议使用vImageConvolve_Planar8或vImageConvolve_PlanarF。它的构建要好得多,并照顾到了许多角落边缘场景。
希望这能有所帮助
https://stackoverflow.com/questions/14884564
复制相似问题