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

如何取出區域中的座標

缺席
keikojason
初階會員


發表:37
回覆:63
積分:45
註冊:2004-05-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-07 18:22:05 IP:163.28.xxx.xxx 未訂閱
以下是我在討論區找的,這是一位前輩的範例;而我是希望用這範例將所搜尋到的區域再取出該區域的"最大值與最小值的座標值SHOW出來"想問問各位前輩可以教教小弟要如何改呢????...不知道要怎樣取出座標值...謝謝    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::Button1Click(TObject *Sender) {      int c = 0;   Graphics::TBitmap *BMP = new Graphics::TBitmap();   Byte *ptr=NULL;   BMP->LoadFromFile("1.bmp");   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>=3 && cx<=9)            c+=1;    //計算物件各數 (可用像素數cx來限制是否累計)         //break;       }     }   }   ShowMessage(c);   delete BMP; }
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-09 11:25:58 IP:221.169.xxx.xxx 未訂閱
在 Connect 的函式裡面,新增判斷 BMP->Canvas->Pixels[x][y] 的值的函式 來比較出最大和最小值 由於Connect函式會不斷的遞迴呼叫自己,因此max value和min value最好是宣告在函式之外的全域變數
keikojason
初階會員


發表:37
回覆:63
積分:45
註冊:2004-05-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-12 18:59:50 IP:163.28.xxx.xxx 未訂閱
引言: 在 Connect 的函式裡面,新增判斷 BMP->Canvas->Pixels[x][y] 的值的函式 來比較出最大和最小值 由於Connect函式會不斷的遞迴呼叫自己,因此max value和min value最好是宣告在函式之外的全域變數
還是不懂呢...?因為我是最近才學這軟體..不知道要怎樣去修該因為這範例有些不是很懂對於一些語法不太會~~懇求前輩指教
系統時間:2024-06-02 13:46:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!