引用 | 編輯
ptrlin
2008-03-21 18:56 |
2樓
▲ |
網路上看到的程式碼:
下面是我用的方式 您參考看看 XX,YY 就是妳要的質心 sum就是你要的面積 void __fastcall TForm1::Button13Click(TObject *Sender) { Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Byte *ptr; int r,g,b; int i,j,XX,YY; int sum=0,X=0,Y=0; Bmp->Assign(Image1->Picture->Bitmap); Bmp->PixelFormat=pf24bit; for (int i=0;iHeight;i++ ) { ptr=(Byte*)Bmp->ScanLine; for (int j=0;jWidth; j++ ) { b=ptr[j*3]; g=ptr[j*3+1]; r=ptr[j*3+2]; if(r==0&&g==0&&b==0&&iHeight&&jWidth) { sum=sum+1; X=X+j; Y=Y+i; XX=X/sum; YY=Y/sum; Form1->Edit1->Text=XX; Form1->Edit2->Text=YY; Form1->Edit3->Text=sum; } } } } F9去Run沒問題 但真正去開圖找面積跟質心時 在 g=ptr[j*3+1]; 這一行有問題 接著程式會有點當掉 看不到錯誤訊息 不知如何修改 另外質心不是只有一個嗎? 不曉得為啥他用到XX跟YY ? x0 |