我用c++寫的 sobel 不知哪裡錯誤?? |
尚未結案
|
candice
一般會員 發表:24 回覆:6 積分:6 註冊:2005-05-12 發送簡訊給我 |
我已經搜尋過站上的sobel相關文章了
可是因為語法我轉不過來 看不太懂
所以來這裡請教各位 我現在是做一連串的影像處理
先修出原圖 轉成灰階 再做sobel
前面兩項我都做好了 但sobel我一直做不出來
可以請大家幫我看看嗎 做法有些拙劣 請大家不要見笑並請給我一些意見
我應該要怎樣改寫比較好呢??
void CMFC_1Dlg::OnBnClickedButton2() { CClientDC dc(this); maxX=ima.GetWidth(); maxY=ima.GetHeight(); byte Gx,Gy,Z,Y,max=-1; for (int y=1; y |
sodesga
一般會員 發表:1 回覆:3 積分:0 註冊:2004-09-08 發送簡訊給我 |
|
candice
一般會員 發表:24 回覆:6 積分:6 註冊:2005-05-12 發送簡訊給我 |
|
candice
一般會員 發表:24 回覆:6 積分:6 註冊:2005-05-12 發送簡訊給我 |
我做出來顯示出是這樣
? 然而我用較簡單的圖形來測試時(用小畫家只畫一個方框)
畫面出來卻是全黑的
若是要將遮罩套入
// 3x3 GX Sobel mask.
GX[0][0] = -1; GX[0][1] = 0; GX[0][2] = 1;
GX[1][0] = -2; GX[1][1] = 0; GX[1][2] = 2;
GX[2][0] = -1; GX[2][1] = 0; GX[2][2] = 1; // 3x3 GY Sobel mask.
GY[0][0] = 1; GY[0][1] = 2; GY[0][2] = 1;
GY[1][0] = 0; GY[1][1] = 0; GY[1][2] = 0;
GY[2][0] = -1; GY[2][1] = -2; GY[2][2] = -1; 又應該如何改寫呢
我不知道應該怎麼套入
請給我一點方向吧 謝謝
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
candice
一般會員 發表:24 回覆:6 積分:6 註冊:2005-05-12 發送簡訊給我 |
|
ddaken
一般會員 發表:39 回覆:33 積分:19 註冊:2005-01-21 發送簡訊給我 |
candice您好
我覺得這一篇..(我之前問的問題)
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=77252
已經說的很清楚了~~
你可以參考看看~ 所謂後處理指的你現在要對a[i][j]做處理
處理後的資料放到b[i][j]而不是直接在放回a[i][j] 另外關於gx.gy~我想您可能不懂sobel到底是什麼吧?
所謂sobel簡單的說可以視其為一簡單的filter
假設現在你有
矩陣a[a1 a2 a3 a4 a5 a6 a7 a8 a9] 而現在要把sobel帶入放到b矩陣 那麼以a5這一點為例 新的b5的內容GX GY GX=a7 a8*2 a9-(a1 a2*2 a3) GY=(a3 a6*2 a9)-(a1 a4*2 a7) 因此做SOBEL會有邊緣的問題考慮與否(如a1...該怎麼取其芳鄰之點) 再者GX GY可能會超過255~~所以有爆表的問題 所以你問的問題 -------------------------------------------------- gx gy的值是要宣告一個陣列然後把pixel算出的值存進去 還是可以只宣告成int 就好了呢? -------------------------------------------------- 應該知道答案了吧? 如果還是不懂 還是去看影像處理的書吧~~ Digital Image Processing by Gonzalez and Woods |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |