全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2654
推到 Plurk!
推到 Facebook!

sobel 邊緣偵測的問題

 
dicky9055
一般會員


發表:20
回覆:48
積分:18
註冊:2006-08-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-12-03 10:23:00 IP:211.76.xxx.xxx 未訂閱
Graphics::TBitmap *bmp = new Graphics::TBitmap();
Byte *ptr;
int gray;
int i,j;
int OtsuT;
int sx = 0;
int sy = 0;
int **pic = 0;
int thresh;
eddlg->ShowModal();
thresh = eddlg->ScrollBar1->Position;
bmp->Assign(Image1->Picture->Bitmap);
bmp->PixelFormat=pf24bit;

pic = new int*[bmp->Height];
for(i = 0; i< bmp->Height; i )
pic[i] = new int[bmp->Width];

bmp->Assign(Image1->Picture->Bitmap);
for(j=0; jHeight; j ) {
ptr = (Byte *)bmp->ScanLine[j];
for(i=0; iWidth; i ) {
gray = (ptr[i*3]*28 ptr[i*3 1]*151 ptr[i*3 2]*77)/256;
pic[j][i] = ptr[i*3] = ptr[i*3 1] = ptr[i*3 2] = (Byte)gray;
}
}
for(j=1; jHeight-1; j ) {
ptr = (Byte *)bmp->ScanLine[j];
for(i=1; iWidth-1; i ) { // convolution
sx = -1*pic[j-1][i-1] pic[j 1][i-1] -2*pic[j-1][i]
2*pic[j 1][i] - pic[j-1][i 1] pic[j 1][i 1];
sy = pic[j-1][i-1] 2*pic[j][i-1] pic[j 1][i-1] -
1*pic[j-1][i 1] - 2*pic[j][i 1] - pic[j 1][i 1];
if(sqrt(sx*sx sy*sy)>thresh)
ptr[i*3 1]=ptr[i*3] = ptr[i*3 2] = 0;
else ptr[i*3] = ptr[i*3 1] = ptr[i*3 2] = 255;
}
}
Image1->Picture->Assign(bmp);
for (i=0; i< bmp->Height; i )
delete [] pic[i];
delete [] pic;
delete bmp;


這是參考某一大大寫的程式所寫的
在紅色的地方看不太懂為何要這樣做
所以想請大大們幫我解答一下
此外..我有寫一個otsu的函式..要怎麼使用在這個程式呢
是將sx sy的值代入嗎..還是其他的呢?
也請幫我解答一下
謝謝
CoffeeX
中階會員


發表:18
回覆:121
積分:72
註冊:2005-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-12-12 17:12:56 IP:140.125.xxx.xxx 未訂閱
第一個問題,
產生二維動態陣列,用來存放值,

第二個問題,
轉灰階
------
=.=???
dicky9055
一般會員


發表:20
回覆:48
積分:18
註冊:2006-08-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-12-14 13:24:41 IP:211.76.xxx.xxx 未訂閱
在第一個問題中
為何要這樣設呢
這個目的是為什麼
而第二個問題
這個公式是什麼
我怎麼沒看過這樣的公式呢
麻煩大大解答一下
謝謝
===================引 用 文 章===================
第一個問題,
產生二維動態陣列,用來存放值,

第二個問題,
轉灰階
sew
一般會員


發表:2
回覆:54
積分:21
註冊:2003-08-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-12-14 17:00:40 IP:59.120.xxx.xxx 未訂閱
第一題, 前面己經提過了..為了動態建立矩陣, 這樣當你的圖的大小不同時, 程式依然可以用, 而不是把圖的大小寫死
第二題, 灰階是, 只要把rgb設為相同值, 就會變成灰階了, 所以那個公式應該只是為了突顯某個色階, 而進行轉換的動作
===================引 用 文 章===================

在第一個問題中
為何要這樣設呢
這個目的是為什麼
而第二個問題
這個公式是什麼
我怎麼沒看過這樣的公式呢
麻煩大大解答一下
謝謝
===================引 用 文 章===================
第一個問題,
產生二維動態陣列,用來存放值,

第二個問題,
轉灰階
------
加油!
dicky9055
一般會員


發表:20
回覆:48
積分:18
註冊:2006-08-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-12-18 10:31:22 IP:210.200.xxx.xxx 未訂閱

謝謝上面二位大大的回答
系統時間:2024-04-24 16:49:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!