2012-09-12 97 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您對此有圖解。