怎么求取图片中圆的个数 ( 积分: 100 )

  • 主题发起人 主题发起人 pzl625
  • 开始时间 开始时间
P

pzl625

Unregistered / Unconfirmed
GUEST, unregistred user!
一幅图片中背景色是黑色,圆的背景是白色,里面有多个圆,怎么求取图片里面有多少个圆呢?
高手们能否指点一下思路呢?
 
唉!难度大!交叉就麻纺了!
 
没有交叉的圆,都是独立的
 
///以下8Bit的位图个数= 16^
Bmp.PixelFormat := pf8bit;
Bmp.Width := 16;
Bmp.Height := 16;
for i := 0 to 15 do
for j := 0 to 15 do begin
if Canvas.Pixels[i * 10 + 5, j * 10 + 5] = 白色 then
Inc(白色Count) // Bmp.Canvas.Pixels[i, j] := clBlack
else Bmp.Canvas.Pixels[i, j] := clWhite;
end; // for J to do
 
没有交叉的话就太容易了——扫描图像,若发现白色点,就对该点进行FloodFill填充,
填成黑色或者其它不同于白色的颜色,同时计数,然后继续扫描/填充的过程,直到图片被
扫描完毕为止。这种方法适用于单色图上的任意多个不交叉的简单多边形(即内部没有孔隙
的封闭图形)的计数。:)
 
这种方法是不错的啊
但是有二值化时候难于去掉的花纹的时候似乎很难处理的哦
就会产生很大的错误
 
多人接受答案了。
 
后退
顶部