2012-11-06 31 views
0

我對我所提取的輪廓數與第一的圖像)cvCanny和第二)findContours除以輪廓。我只對外部點感興趣,所以我得到了幾個封閉的輪廓,我進一步分析。我正在尋找橢圓或圓形,並且由於圖像中的某些重疊,我得到了一些對我來說很有意思的輪廓,但是我的算法因爲它們看起來不橢圓而丟棄了它們。
有沒有辦法去除這些輪廓,例如基於兩個重疊輪廓之間的小連接「橋樑」被檢測爲一個?在重疊

Example contour

在這個例子中,我會想只切杆的右下角。
由於性能問題,霍夫圓檢測不是一種選擇。

謝謝!

回答

1

以前從未使用過這些算法,但有一個想法:定義一個點之間的最小長度L,小於您希望創建橋的點數。然後對於輪廓上的每個點,構造長度爲L的切線線段,其原點位於該點。無論切線線段相交兩個點點,您將有一個位置,輪廓在圖中的杆/橢圓交點處有效地變得「捏」。當發生這種情況時,畫出橋樑,這將成爲切線段本身。

如果您在單個點處(例如在曲線的頂部,朝向左側)採用單個線段並且將線段移動到輪廓周圍並將其沿着橋樑移動,則可能更容易想象或做到這一點在滿足上述條件時在線創建。

+0

好的,這似乎是一個開始,謝謝!但即使我有「橋」或切線去除輪廓上不需要的部分,我如何將它整合到輪廓中? – moatilliatta

+0

@moatilliatta只需使用切線段的那些點作爲橋。 –