2012-10-25 65 views
-4

我已經把頭靠在牆上撞了很長時間了。 我習慣於使用Matlab的conv2函數,它自己完成卷積。2維卷積 - 如何在Java中實現?

但是,我只是未能在Java中正確實現它。我會提供一個代碼片段,但它的一切都搞砸了。我會盡量弄清楚併發布(實際上這裏是凌晨4點30分,我仍然在這方面苦苦掙扎)。

任何人都可以請發表工作代碼的方法,做2d在Java中相同大小的2維數組之間的卷積?

謝謝!

+1

重,'「任何人都可以請張貼工作代碼的方法,做Java中的兩個相同尺寸的2維數組的二維卷積?」':截至目前寫的,這不是一個真正的問題,而是乞求不適合本網站的代碼。請在問題結束前通過顯示您的代碼並詢問具體的可回答問題來改變這一點。 –

+1

嚴重的是,粗略的谷歌搜索產生確切的功能。 – Mikhail

回答

2

有點谷歌搜索從未傷害過。 This code可能會幫助你。特別是,

public static double[][] convolution2D(double[][] input, 
      int width, int height, 
      double[][] kernel, 
      int kernelWidth, 
      int kernelHeight) { 
     int smallWidth = width - kernelWidth + 1; 
     int smallHeight = height - kernelHeight + 1; 
     double[][] output = new double[smallWidth][smallHeight]; 
     for (int i = 0; i < smallWidth; ++i) { 
      for (int j = 0; j < smallHeight; ++j) { 
       output[i][j] = 0; 
      } 
     } 
     for (int i = 0; i < smallWidth; ++i) { 
      for (int j = 0; j < smallHeight; ++j) { 
       output[i][j] = singlePixelConvolution(input, i, j, kernel, 
         kernelWidth, kernelHeight); 
      } 
     } 
     return output; 
    } 
+0

我做了,找不到任何值得使用的東西。會嘗試這個細分市場。謝謝! – Zephyer