用Borland C++Builder求面積

Home Home
引用 | 編輯 ptrlin
2008-03-18 03:31
樓主
推文 x0
題目是 有一張圖 我將它作完二值化後 只有黑跟白
白色是它的背景 黑色為一個不規則的多 ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 overing
2008-03-19 12:44
1樓
  
如果圖不大
可以用土法煉鋼的方法
計算像素數量 表情

獻花 x0
引用 | 編輯 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