引用 | 编辑
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 |