2013-02-14 51 views
1

我想在iphone(iOS 5.1)上使用Accelerate框架來做矩陣卷積。但是,當我運行功能卷積函數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

我想你錯過了對卷積的一些理解。我建議在維基百科上查找它。當您將矩陣與一個內核進行卷積時,結果是與原始矩陣具有相同大小的另一個矩陣。以上,當你的輸入矩陣是42個元素時,dst只分配6個元素。 dst也應該是42個元素。

我推薦卷積,你看看vImageConvolve_Planar8或vImageConvolve_PlanarF。它更好地構建並處理很多邊角情景。

希望這會有幫助

+0

你是對的,我正在理解錯誤什麼樣的卷積返回vDSP_imgFir。非常感謝你! – kahlo 2013-02-15 17:59:03