作者: ip4368 時間: 2014-12-7 00:13 標題: JAVA求教 Image Processing filter問題
本帖最後由 ip4368 於 2014-12-7 12:06 編輯
- private void convolve(int[][] f, double[][] filter) {
- int filterSize = filter.length;
- int M = f.length; //height
- int N = f[0].length; //width
- int[][] copy = new int[f.length][f[0].length];
- for (int i = 0; i < f.length; i++)
- System.arraycopy(f[i], 0, copy[i], 0, f[0].length);
- int sl = (filterSize-1)/2;
- for (int i = sl; i < f.length-sl; i++)
- for (int j = sl; j < f[0].length-sl; j++){
- double temp = 0.0;
- for (int y = 0; y < filterSize; y++)
- for (int z = 0; z < filterSize; z++)
- temp += copy[i-sl+y][j-sl+z]*filter[y][z];
- f[i][j]= (int) temp;
- if (f[i][j]<0)
- f[i][j]=0;
- if (f[i][j]>255)
- f[i][j]=255;
- }
- }
我google其他convolve嘅又應該一樣concept, 唔知錯咩, 希望各位ching可以幫幫手
(professor話ignore個boundary)
---------------------------------------------------------------------------------------------------
update寫完, 原來幅圖D pixel out of range會出255, 所以要將<0嘅pixel轉返0, 就正常做到. 要做返好, 所以將>255都轉返255
作者: ip4368 時間: 2014-12-7 12:07
solved
作者: Jackass_TMxCK 時間: 2014-12-7 13:53
……咁都得?2分進帳Yeah!
作者: snoopy11hk 時間: 2014-12-7 14:14
YEAH, 又進帳一分
作者: 梁炳 時間: 2014-12-7 16:52
回覆 3# Jackass_TMxCK
樓主有post番個solution出來,已經好好架喇

