3

我有一組2D點,我想找到潛在的最大空圓圈。因此,我並不是要編寫最大空圈算法。查找潛在的最大圓圈

這是一張圖片,試圖解釋我的話。

enter image description here

enter image description here

正如你所看到的,有一些圈子裏面分,所以我要的是,鑑於該組2D點,可以計算這個圈子的算法。

該組點代表包含洞的下水道牆。問題是這個孔可能是軟木塞,可能在圓的一側或多側包含一些污垢。所以,當你激光探測到這個部件時,你不會得到一個完美的圓,而是一個半圓。我想找到的是當沒有污物時,原始的洞,乾淨的洞。當我說潛力時,我的意思是最初的漏洞。在圖像中,綠色的圓圈就是原來的洞穴,圈內的點是一些污垢。最終目的是決定是否清潔或骯髒(檢測綠色圓圈內有多少點,並確定它有多髒)

它應該如何在現實生活中的另一個例子:

enter image description here

在這裏你可以看到,孔有污垢在底部(可能是孔的任何一側),所以當你發現激光它,你不會獲得了一圈,但一堆點的圓圈上部爲空。我想要的是從那些只能看到圓圈上半部分的點,重新構建原始的洞,就像清理時那樣。

另外,我從兩個不同的角度附加了兩個點雲圖像,這樣您就可以知道我正在處理什麼。

enter image description here

enter image description here

+3

你是什麼意思與「潛在的最大空圈」?圖像中的圖像既不是空的也不是「最大的」,在任何明顯的意義上 – user463035818

+0

我的意思是,給定這個二維點集,檢測潛在的最大空圓。通過潛力,我的意思是繼續將半徑相切應用於圓的上部,完成整個圓。 更一般地說,那個綠色圓圈代表一個下半部分塞住的孔。我想找到的是當沒有軟木塞的時候洞應該是怎樣的。這意味着要發現綠洞(以及綠洞內的點是「塞住」洞的部分) –

+2

至少對我來說,這是非常不清楚的,你的意思是什麼?你可以展示一些不同的點什麼答案會是每個? –

回答

1

如果你能以繪製點到的圖像縮放座標,這裏是一個解決方案:

  1. 抽獎點到圖像中
  2. 使用所有點作爲源點計算距離圖。
  3. 然後,每個像素將包含到closes點的距離。所以具有最高值的像素將是最大圓的中心,並且像素值將是圓的半徑。
  4. 查找離圓心最近的點。
  5. 找到經過所有論點的圓圈(Hough?)。解決方案可能不是唯一的。
+0

只有當你看到*至少*完整半徑(即下半部分,上半部分或更多)時才起作用 – Yuri

+0

@FiReTiTi我不明白繪製點成圖像的概念。你是什​​麼意思。 此外,我不知道我是否明白你的意思。例如,在這張圖片中,http://imgur.com/ldALw22哪一點應該是圓圈的中心?我想說的是第六排的一點。你的想法是否適用於這個例子?或者另一個更極端的例子:http://i.imgur.com/nPrtFkw.png在這張圖片中,只有原始圓圈的一小部分是乾淨的。 謝謝Alex。 –

+1

想法將點繪製到圖像中,讓您使用距離圖(http://www.cs.cornell.edu/courses/cs664/2008sp/handouts/cs664-7-dtrans.pdf),這是真的容易計算,並且可以爲您提供圓圈的中心。但它給了你不包含任何點的圓的中心。現在我在你的例子中意識到你想要一個包含空白區域和一些點的圓圈(因爲很多)。 – FiReTiTi