求影像邊緣!!!... |
答題得分者是:geniustom
|
wd7142
一般會員 發表:18 回覆:19 積分:7 註冊:2004-01-13 發送簡訊給我 |
不好意思,我想請問一下,我是使用threshold做垂直邊緣
{-1,0, 1}
{-2, 0, 2}
{-1, 0, 1}
偵側,可是我出來灰階圖的pixel值卻不對,所以想請各位能幫我看看程式
的方面有那些錯誤,謝謝!!
unsigned char clr[256][256]; unsigned char p1,p2,p3,p4,p5,p6,p7,p8,p9; for(int y=1; y<255; y ) for(int x=1; x<255; x ) { p1 = GetRValue(Image1->Canvas->Pixels[x-1][y-1]); p2 = GetRValue(Image1->Canvas->Pixels[x][y-1]); p3 = GetRValue(Image1->Canvas->Pixels[x 1][y-1]); p4 = GetRValue(Image1->Canvas->Pixels[x-1][y]); p5 = GetRValue(Image1->Canvas->Pixels[x][y]); p6 = GetRValue(Image1->Canvas->Pixels[x 1][y]); p7 = GetRValue(Image1->Canvas->Pixels[x-1][y 1]); p8 = GetRValue(Image1->Canvas->Pixels[x][y 1]); p9 = GetRValue(Image1->Canvas->Pixels[x 1][y 1]); clr[x][y]=((-1)*p1 (1)*p3 (-2)*p4 (2)*p6 (-1)*p7 (1)*p9); } for (int y=0; y<256;y ) { for (int x=0; x<256; x ) { if(abs(clr[x][y]>=100)) Image2->Canvas->Pixels[x][y]=TColor(RGB(0,0,0)); else Image2->Canvas->Pixels[x][y]=TColor(RGB(255,255,255)); } } Application->ProcessMessages(); } |
geniustom
版主 發表:100 回覆:303 積分:260 註冊:2003-01-03 發送簡訊給我 |
建議使用一個INTEGER的型態來存..例如
int a[256][256]; . . 同前 a[x][y]=((-1)*p1 (1)*p3 (-2)*p4 (2)*p6 (-1)*p7 (1)*p9); if (a[x][y]<0){ clr[x][y]=0; }else if (a[x][y]>255){ clr[x][y]=255; }else{ clr[x][y]=a[x][y]; }因為INT才可存負值.. 不要用ABS..因為經過SOBEL運算..出來的結果有可能是正值..也可能是負值 您用ABS會把負值很大的變成正值很大..會照成反效果.. 再來就是若大於255..尼的程式會溢位..變成無法預知的值.. 供參考.. 發表人 - geniustom 於 2004/03/28 17:58:01 |
wd7142
一般會員 發表:18 回覆:19 積分:7 註冊:2004-01-13 發送簡訊給我 |
引言: 建議使用一個INTEGER的型態來存..例如真是多謝指教了,正如你所說的,int才可以存負值,問題已解決!!! 真是太謝謝你了~~~~^^int a[256][256]; . . 同前 a[x][y]=((-1)*p1 (1)*p3 (-2)*p4 (2)*p6 (-1)*p7 (1)*p9); if (a[x][y]<0){ clr[x][y]=0; }else if (a[x][y]>255){ clr[x][y]=255; }else{ clr[x][y]=a[x][y]; }因為INT才可存負值.. 不要用ABS..因為經過SOBEL運算..出來的結果有可能是正值..也可能是負值 您用ABS會把負值很大的變成正值很大..會照成反效果.. 再來就是若大於255..尼的程式會溢位..變成無法預知的值.. 供參考.. 發表人 - geniustom 於 2004/03/28 17:58:01 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |