圓心抓取不準疑問 |
缺席
|
yc601065
一般會員 發表:3 回覆:5 積分:1 註冊:2009-12-15 發送簡訊給我 |
Hi各位先進~
以下是我抓取原心的程式Code,目前有個問題,我抓取的(x,y)中心點都會偏, 不是正確的圓心點,想請教是否是我的Logic觀念弄錯 目前我找圓心的方式事先將圖二值化,再找Pixel為0的點做分析 分析圖片:24Bit BMP檔如附件 [code c#] void __fastcall TForm1::Button1Click(TObject *Sender) { if (Image1->Picture->Bitmap->Empty==true) ShowMessage("請擷取影像!!"); Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Image1->Picture->Bitmap->PixelFormat = pf24bit; //Graphics::TBitmap; //是表示TBitmap這個結構是來自於Graphics這個物件, //因為很多物件都可能有TBitmap這個結構, //所以它是用來指定來自於哪個物件的. Byte *ptr; int r,g,b; int gray; int i,j; int threshold; threshold=ScrollBar1->Position; Edit1->Text=ScrollBar1->Position; Bmp->Assign(Image1->Picture->Bitmap); for(j=0;j { ptr=(Byte *)Bmp->ScanLine[j];//ptr指標指向bmp第y行 for(i=0;i { b=ptr[i*3]; g=ptr[i*3 1]; r=ptr[i*3 2]; gray=0.299*r 0.587*g 0.114*b; //灰階演算 if(gray>threshold) gray=255; else gray=0; ptr[i*3]=(Byte)gray;//藍 ptr[i*3 1]=(Byte)gray; //綠 ptr[i*3 2]=(Byte)gray; //紅 } } Image2->Picture->Assign(Bmp); delete Bmp; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Byte *ptr; int start_x=0; int end_x=0; int max_pixcel=0; int end_y=0; int y=0; int x_count=0; Image2->Canvas->Pen->Style=psSolid; Image2->Canvas->Pen->Color=Pen_Color; for( int x=0;x { y=0; x_count=0; ptr=(Byte *)Image2->Picture->Bitmap->ScanLine[x]; //Edit3->Text=ptr[0]; //Edit4->Text=Image1->Picture->Bitmap->Canvas->Pixels[0][1]; while(y if(ptr[y*3]==0) { x_count =1; if(x_count==1) start_x=y; } else if(x_count !=0 || y==Image2->Width-1) break; y ; } end_x=start_x x_count -1; if(max_pixcel max_pixcel=end_x; end_y=x; } Edit3->Text=end_x; Edit4->Text=end_y; } Image2->Canvas->MoveTo(end_x-5 ,end_y); Image2->Canvas->LineTo(end_x 5 ,end_y); Image2->Canvas->MoveTo(end_x,end_y-5 ); Image2->Canvas->LineTo(end_x,end_y 5 ); } [/code] 編輯記錄
yc601065 重新編輯於 2011-04-22 01:10:25, 註解 無‧
|
yc601065
一般會員 發表:3 回覆:5 積分:1 註冊:2009-12-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |