2012-10-25 128 views
1

有什麼方法可以準確檢測opencv中的圓圈嗎?我正在使用hough變換,它給了我很好的效果,但大多數時候,物體和周圍的光線,光線等都會產生不好的效果,所以我在尋找除圓圈之外的選項,準確的檢測對我的項目非常重要。如何準確檢測圓圈

我到目前爲止的基本方法是在實時拍攝的圖像中找到一些球體。我用houghcircle找到球體,然後根據我得到的半徑進行計算。

如果背景是簡單的,沒有任何問題,球體檢測沒有問題,但是如果我在我的房間拍攝背景中有其他物體的圖像,通常很難檢測到。所以我正在尋找其他方法。

+0

我們將鏈接到圖像來幫助你(你有困難的例子)。另外,你不會告訴我們你具體嘗試的是什麼......我認爲預處理對你的情況至關重要。 –

+0

@QuentinGeissmann好的,基本的方法是在圖像中找到一些球體,所以我們用houghcircle找到它們,後來的計算就是從中得到的值,我的意思是半徑。如果背景是簡單的,沒有任何問題可以毫無問題地檢測到,那麼假設我在我的房間裏拍攝了這張圖片,那裏的背景會是我房間裏的任何東西,在那種情況下,它通常很難被發現。所以我正在尋找其他一些 –

+0

@QuentinGeissmann也是我的項目,我必須實時拍攝圖像surrondings。 –

回答

3

我有類似的需要找到圈acuratly和霍夫做關於精確檢測只是一個非常小的工作。嘗試使用。

  1. 輪廓檢測,一旦你有你的輪廓繪製輪廓。
  2. 使用minEnclosingCircle在檢測到的輪廓上繪製一個圓。
  3. 從輪廓可以得到半徑和X,Y點

編輯:亦反對在周圍的小物體可以使用ContourArea()進行過濾。 檢查更小的輪廓,並消除

這應該比霍夫圓檢測更好。祝你好運

1

由於Junxx提到照度不變會與我所遇到的大多數問題一起工作。像陰影,光線等,這可能對尋找這個答案的人有用。