2012-07-19 32 views
5

Mam następujący obraz:jak wykryć środek okręgu rozmyte z OpenCV

enter image description here

Są krzywe na zdjęciu. Chciałbym znaleźć środek kół zawierających krzywe.

Próbowałem transformacji OpenCV i Hough Circle, ale nie przyniosłem żadnych rezultatów.

+1

Prawdopodobnie lepsze pytanie dla [DSP] (http://dsp.stackexchange.com/) – Maurits

+1

Wygląda na to, że centrum znajduje się poza obrazem, czy to prawda? – MSalters

+0

Tak, środek jest na zewnątrz, ale używam większego obrazu z tym na środku, kiedy używam transformacji kółka. – JingKe

Odpowiedz

1

Naturalnym kandydatem będzie cvHoughCircles. Każda część każdej krzywej dodaje "głos" dla tripletu X/Y/R, który identyfikuje punkt środkowy. Teraz masz tylko część kręgów, więc liczba głosów jest ograniczona, a dokładność zmniejszona, ale prawdopodobnie podejrzewasz tak bardzo.

0
  • Próg obraz
  • obniżają ją, dopóki nie jest mało lub nie ma hałasu (małe plamki)
  • rozszerzają go
  • znaleźć wielką plamę. Jeśli nadal są jakieś małe obiekty typu blob, wybierz maksymalny obszar.
  • użytku cv :: chwil na znalezienie jej ciężkości
1

Oto, co chciałbym spróbować najpierw:

Zauważmy, że jeśli narysować promienie od prawdziwego centrum kręgów, lokalnego maksimum intensywności obrazu wzdłuż nich występują w odstępach niezależnych od orientacji promienia. Te interwały są różnicami między długością promieni kolejnych kółek.

W ten sposób ustal kierunki liczby lub promienia, powiedzmy 16 równo rozmieszczone w [0, pi] i określ funkcję kosztu sparametryzowaną na (xc, yc) współrzędnych środka i promieniach ri kół, z koszt równy, na przykład, wariancji maksimów lokalizacji wzdłuż promienia między różnymi promieniami.