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

如何搜尋白色以外的面積

答題得分者是:johnpage
god12dog
一般會員


發表:14
回覆:3
積分:3
註冊:2007-12-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-30 14:38:51 IP:218.163.xxx.xxx 訂閱
這是我在板上找的程式,他只會搜尋白色的面積,那如果今天我要找別的顏色面積那要如何做
[code cpp]
int count=0;
int Connect(Graphics::TBitmap * BMP, int x, int y)
{
count ;
BMP->Canvas->Pixels[x][y] = clBlack;
// 判斷 (x 1,y)
if(BMP->Canvas->Pixels[x 1][y] == clWhite)
{
Connect(BMP, x 1, y);
}
// 判斷(x 1, y - 1)
if(BMP->Canvas->Pixels[x 1][y - 1] == clWhite)
{
Connect(BMP, x 1, y - 1);
}
// 判斷 (x 1,y 1)
if(BMP->Canvas->Pixels[x][y - 1] == clWhite)
{
Connect(BMP, x , y - 1);
}
// 判斷 (x,y-1)
if(BMP->Canvas->Pixels[x-1][y - 1] == clWhite)
{
Connect(BMP, x-1, y - 1);
}
// 判斷 (x,y-1)
if(BMP->Canvas->Pixels[x-1][y] == clWhite)
{
Connect(BMP, x-1, y);
}
// 判斷 (x-1,y)
if(BMP->Canvas->Pixels[x - 1][y 1] == clWhite)
{
Connect(BMP, x - 1, y 1);
}
// 判斷 (x-1,y-1)
if(BMP->Canvas->Pixels[x][y 1] == clWhite)
{
Connect(BMP, x, y 1);
}
// 判斷 (x 1,y)
if(BMP->Canvas->Pixels[x 1][y 1] == clWhite)
{
Connect(BMP, x 1, y 1);
}
// 判斷 (x-1,y 1)
if(BMP->Canvas->Pixels[x 1][y] == clWhite)
{
Connect(BMP, x 1, y);
}
return (count);
}
void __fastcall TForm1::Button10Click(TObject *Sender)
{
int j ;
int c = 0;
Graphics::TBitmap *BMP = new Graphics::TBitmap();
Byte *ptr=NULL;
BMP->Assign(Image1->Picture->Bitmap);;
for(int y = 0; y < BMP->Height; y )
{
ptr = (Byte *) BMP->ScanLine[y];
for(int x = 0; x < BMP->Width; x )
{
if(ptr[x*3]==255)
{
int cx= Connect(BMP, x, y);
Memo1->Lines->Add(cx);// 顯示每次計算的結果(物件所佔的像素數)
count=0; //歸0用
if (cx>=150 && cx<=500)
c =1; //計算物件各數 (可用像素數cx來限制是否累計)
//break;
}
}
}
ShowMessage(c);
delete BMP;
}
[/code]
johnpage
初階會員


發表:0
回覆:79
積分:40
註冊:2004-08-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-30 19:59:33 IP:118.167.xxx.xxx 訂閱
clWhite <= 就是蒐尋的顏色
god12dog
一般會員


發表:14
回覆:3
積分:3
註冊:2007-12-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-30 20:02:02 IP:59.126.xxx.xxx 訂閱
可是我打CLRed
他不會找紅色的點= =
johnpage
初階會員


發表:0
回覆:79
積分:40
註冊:2004-08-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-30 23:55:56 IP:116.59.xxx.xxx 訂閱
先確定clWhite是 變數還是常數值
如果是變數請設定成想要的顏色

clWhite = 想要的色馬
taishyang
站務副站長


發表:377
回覆:5486
積分:4552
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-12-01 10:15:24 IP:118.169.xxx.xxx 訂閱
這樣編譯可以過嗎?
應該是clRed



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