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

如何使用Image [X] [Y]

答題得分者是:senso
MVP2000
一般會員


發表:13
回覆:16
積分:5
註冊:2007-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-06-28 13:11:02 IP:61.231.xxx.xxx 訂閱

X_SIZE = Image1->Widht
Y_SIZE =Image1->hight

我是想帶向下面的函式 `if(image_in[i][j] <= thresh) image_out[i][j] = HIGH;

但是我不知道怎麼把圖片的數值進去image_in[i][j];
[code cpp]
void threshold(unsigned char image_in[Y_SIZE][X_SIZE],
unsigned char image_out[Y_SIZE][X_SIZE], int thresh, int mode)
{
int i,j;
for (i = 0; i < Y_SIZE; i ) {
for (j = 0; j < X_SIZE; j ) {
switch (mode) {
case 2:
if ((int)image_in[i][j] <= thresh) image_out[i][j] = HIGH;
else image_out[i][j] = LOW;
break;
default:
if ((int)image_in[i][j] >= thresh) image_out[i][j] = HIGH;
else image_out[i][j] = LOW;
break;
}
}
}
}
[/code]
------
May I ask you something ?
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-28 14:19:55 IP:61.219.xxx.xxx 訂閱
可以從Pixels取得該點TColor值,從TColor取得R,G,B,
也可以用ScanLine的方式取得R,G,B,

也許你還需要轉為灰階或其他的計算後,再做處理。
MVP2000
一般會員


發表:13
回覆:16
積分:5
註冊:2007-04-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-06-29 05:12:44 IP:61.231.xxx.xxx 訂閱
那麼我可以那寫成下面那樣嗎? 我不太會用Tcolor ~ 如果我把他轉成灰階之後是否可以不用Tcolor

[code cpp]

if ((int)Image1->Canvas->Pixels[j][i]<= thresh)
Image1->Canvas->Pixels[j][i]; = HIGH;
else
Image1->Canvas->Pixels[j][i]; = LOW;

[/code]
------
May I ask you something ?
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-06-29 10:01:36 IP:61.219.xxx.xxx 訂閱
TColor其實就是存數值,比如說該點Pixels為藍色的即為FF0000  (BGR),
直接比很容易因為顏色偏藍或綠就會超過你設定的thresh

[code cpp]
TColor color=Image1->Canvas->Pixels[80][70];
BYTE R = GetRValue(color);
BYTE G = GetGValue(color);
BYTE B = GetBValue(color);
[/code]

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