2012-09-12 17 views
5

二值化后我有黑白图像。之后,我得到一个不规则形状的物体。链接到这张图片如下。 我怎么能把这个物体刻成圆?或者我如何找到这个对象的“中心”?如何找到对象的中心?

http://s6.ifotos.pl/img/opticdisk_xhnrnwe.png

+0

你想找到对象绘制最长的线并绘制一个半径为半径的圆? –

+0

链接为我断了 - 从来没有实际加载任何PNG – Pyrce

+0

@tuğrulbüyükışık我会认为“nieve”方法仅仅是平均“白色”像素的位置? –

回答

1

我认为,该对象的该中心可以很容易地发现为x的算术平均值和y坐标。我想用圆圈代替它,我会说直径是所有点到中心的平均距离的两倍。

2

好吧,您可以从顶部向下扫描最顶部的白色像素,然后从底部向上扫描最底部的白色像素,左右相同。给你一个矩形。找到矩形的中心很容易(例如左+(右 - 左)/ 2),这就是你的圆心。然后找到到角落的距离(任何可以做的),这就是你的圆圈半径。

+0

这不会产生最小的半径,我认为。考虑该算法针对填充白色圆圈的结果。 –

+0

同意,不......但用例可能并不需要; OP没有说... – mark

2

这听起来像是一组白色像素上的smallest circle problem。它可以在像素数量的线性时间中找到。这是最好的你会得到它你的输入只是一个二进制像素数组。

9

您可以使用一个简单的公式找到像素的重心,这个公式是x坐标除以点数和y坐标之和除以点数(I mean白点)。

然后,您可以绘制一个以重心为中心的圆,点之间的最大距离为半径的一半。

Here您对此有图解。