看板 C_Sharp 關於我們 聯絡資訊
※ 引述《willy01 (汪洋中的一條狗)》之銘言: : 這個 : 我打sobel出點問題 : 但我確定我遮罩應該沒問題 : 我做出的圖:http://www.wretch.cc/album/album.php?id=willydog029&book=5&page=1 : 做出的圖 和正確的sobel出入很多 : 希望有大大幫我看一下code : ============================================================================ : private void 邊線邊緣sobelToolStripMenuItem_Click(object sender, EventArgs e) : { : //定義變數 陣列 : Bitmap sobel = new Bitmap(curBitmap); : int [,] arr_r; : int [,] arr_g; : int [,] arr_b; : byte[,] temp_array; : arr_r = new int[sobel.Width, sobel.Height]; : arr_g = new int[sobel.Width, sobel.Height]; : arr_b = new int[sobel.Width, sobel.Height]; : temp_array=new byte[sobel.Width, sobel.Height]; : //計算Gx 和Gy : double x; : double y; : double grad; for (int i = 1; i < (sobel.Width - 1); i++) { for (int j = 1; j < (sobel.Height - 1); j++) { arr_r[i, j] = curBitmap.GetPixel(i, j).R; arr_g[i, j] = curBitmap.GetPixel(i, j).G; arr_b[i, j] = curBitmap.GetPixel(i, j).B; //先灰階化 arr_r[i, j] = (arr_r[i, j] + arr_g[i, j] + arr_b[i, j]) / 3; } } : for (int i = 1; i < (sobel.Width-1); i++) : { : for (int j = 1; j < (sobel.Height-1); j++) : { : //sobel的Gx能階 : //1 0 -1 : //2 0 -2 : //1 0 -1 : x=System.Math.Abs(1*arr_r[i-1,j-1]+2*arr_r[i-1,j] + 1*arr_r[i-1,j+1] : - arr_r[i+1, j-1] - 2 * arr_r[i+1, j] - arr_r[i + 1, j + 1]); : //sobel的Gy : //1 2 1 : //0 0 0 : //-1 -2 -1 : y=System.Math.Abs(1*arr_r[i-1,j-1]+2*arr_r[i,j-1]+1*arr_r[i+1,j-1] : -1*arr_r[i-1,j+1]-2*arr_r[i,j+1]-1*arr_r[i+1,j+1]); : grad = System.Math.Sqrt(x*x+y*y); : temp_array[i, j] =(byte)(grad); : sobel.SetPixel(i,j,Color.FromArgb(temp_array[i, j],temp_array[i, j], : temp_array[i,j])); : } : } : } : ============================================================================= : 希望有大大可以幫我看一下code : 我知道看別人code很累~~所以我是有先查過資料的 : 還有我想應該不是沒做2值化才不一樣 : 希望有大大可幫忙修CODE : 真的希望可以學好程式......THX 改這樣看看,我看是ok的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.133.8.64
willy01:謝謝~原來我錯那邊.....我知道自己的問題哩 12/22 11:05
willy01:真的很謝謝大大 因為我為了這個想了兩天哩.... 感恩 12/22 11:06
makiyolove:經驗:值可能超過255 也可能小於0 記得調整這個 12/22 15:07
willy01:做sobel不會超值 因為是梯形能階的說 12/23 00:29