請問這個影像處理的範例是何用途與其意義? |
尚未結案
|
keikojason
初階會員 發表:37 回覆:63 積分:45 註冊:2004-05-10 發送簡訊給我 |
各位前輩你們好~~這是小弟在討論區找到的小程式...這是要尋找連續區塊--不過小弟對這程式不了解只知道副程式對每一個去塊,上,下,左,右,左上,左下,右上,右下,那它是怎樣判斷的,那主程式每一行要怎樣解釋呢?
是否有前輩能為小弟說明一下每一個區段程式是做什麼用的,小弟會細心聆聽...謝謝前輩.... ================================================================
int cx=0; 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) { cx= Connect(BMP, x, y); c ; } } } Edit8->Text=IntToStr(c); delete BMP; } //------------------------------------------------------------------- int __fastcall TForm1::Connect(Graphics::TBitmap * BMP, int x, int y) { int count=0; 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); }、、、 |
sew
一般會員 發表:2 回覆:54 積分:21 註冊:2003-08-25 發送簡訊給我 |
一般來說,要抓相同的一區塊可用四相鄰與八相鄰的方法
以一個九宮格的mask來說,標示如下
1 2 3
4 5 6
7 8 9
以5為中心且採用四相鄰來說,以5的灰階值為準且設定一個門檻值(threshold)如加減10的灰階值
只要2 4 6 8四格中有符合門檻值則其與中心5為相鄰
則可判定為同一區塊
以八相鄰來說,則是取
1 2 3 4 6 7 8 9八格來計算
找到一個相鄰點時,再將中心移到該點再做四相鄰或八相鄰
當全部做完時,則可找出區塊的位置,所佔面積等 加油!
------
加油! |
keikojason
初階會員 發表:37 回覆:63 積分:45 註冊:2004-05-10 發送簡訊給我 |
|
sew
一般會員 發表:2 回覆:54 積分:21 註冊:2003-08-25 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
keikojason您好:
您可以參考下面連結的程式與說明
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=56347 順心
|
keikojason
初階會員 發表:37 回覆:63 積分:45 註冊:2004-05-10 發送簡訊給我 |
引言: keikojason您好: 您可以參考下面連結的程式與說明 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=56347 順心 >>< face="Verdana, Arial, Helvetica"> 小弟愚笨< >還是不是很了解呢?...小弟算是新手不知道要怎樣撰寫因為對於一些程式用法不是很清楚,那要找出最大區塊並取出其最大與最小的座標值,那要怎樣去處裡呢?請前輩指教~~~謝謝< > |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |