[問題]請問區域成長法RegionGrowing |
尚未結案
|
Jeamsok
一般會員 發表:1 回覆:1 積分:0 註冊:2005-07-07 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
Jeamsok
一般會員 發表:1 回覆:1 積分:0 註冊:2005-07-07 發送簡訊給我 |
各位大大您好:我想在一張已經灰階的圖中利用mousedowncheck取值之後再利用一個button做執行
void __fastcall TForm1::search(int L ,int X, int Y){ int H = Image1->Picture->Height; int W = Image1->Picture->Width; int temp = 5; // 與取得的值之差值 令其為 5 //int f = Edit1 ->Text.ToInt(); int left = GetRValue(Image1->Canvas->Pixels[X-1][Y]) ; int right= GetRValue(Image1->Canvas->Pixels[X 1][Y]) ; int up = GetRValue(Image1->Canvas->Pixels[X][Y-1]) ; int down = GetRValue(Image1->Canvas->Pixels[X][Y 1]) ; //在MouseDownCheck得值 後利用所給的temp中的值 在其左右上下的pixel之差在temp之內的話 //則其上下左右 的pixel值便被 原Pixels[x][y] 值 給取代 if (X > W || Y >H ){ return ;} if (temp> L) { //取該點pixel值 小於 差值 if(0< left < (temp L)) { Image2->Canvas->Pixels[X-1][Y] = (TColor)RGB(L,L,L); } if(0< right< (temp L)) { Image2->Canvas->Pixels[X-1][Y] = (TColor)RGB(L,L,L); } if(0< up < (temp L)) { Image2->Canvas->Pixels[X][Y-1] = (TColor)RGB(L,L,L); } if(0< down < (temp L)) { Image2->Canvas->Pixels[X][Y 1] = (TColor)RGB(L,L,L); } search(L,X-1,Y); search(L,X 1,Y); search(L,X,Y-1); search(L,X,Y 1); } else{ if((L-temp)< left < (temp L)) { Image2->Canvas->Pixels[X-1][Y] = (TColor)RGB(L,L,L); } if((L-temp)< right< (temp L)) { Image2->Canvas->Pixels[X-1][Y] = (TColor)RGB(L,L,L); } if((L-temp)< up < (temp L)) { Image2->Canvas->Pixels[X][Y-1] = (TColor)RGB(L,L,L); } if((L-temp)< down < (temp L)) { Image2->Canvas->Pixels[X][Y 1] = (TColor)RGB(L,L,L); } search(L,X-1,Y); search(L,X 1,Y); search(L,X,Y-1); search(L,X,Y 1); } } void __fastcall TForm1::RGClick(TObject *Sender) { search( L ,X, Y) ; } void __fastcall TForm1::Imagemousedown(TObject *Sender, TMouseButton Button, TShiftState Shift, int tmp_X, int tmp_Y) { int tmp_L = GetRValue(Image1->Canvas->Pixels[X][Y]); X = tmp_X; Y = tmp_Y; L = tmp_L; //X,Y,L 是全域變數 }1.不知道這樣做可以嗎??區域成長法是這樣做的嗎?總覺得怪怪 2.有overflow的問題 發表人 - jeamsok 於 2005/08/01 00:12:23 發表人 - jeamsok 於 2005/08/01 00:15:45 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |