Próbuję zaimplementować wykrywacz kortów tenisowych za pomocą wideo nagranego z telefonu. Nakręciłem go z odległego kąta kortu tenisowego.OpenCV wykrywa linie kortów tenisowych za siecią
Oryginalny obraz wygląda tak.
Używanie OpenCV canny i transformacji Hough Lines, jestem w stanie wykryć linie we własnej połowie, ale nie te, za głowę. Jak mogę poprawić ten proces i uzyskać niewykryte linie sądowe?
Przetwarzany obraz wygląda jak poniżej.
Zaktualizowano 2016-08-25
Dzięki chłopaki. Rozumiem, że ma sens wyprowadzanie linii sądowych poprzez dopasowanie wykrytych linii do linii modelu. Nie będę próbował wyszukiwania kombinatorycznego, aby znaleźć najlepsze linie do dopasowania modeli. Dlatego też próbowałem oddzielić linie poziome/pionowe, aby zmniejszyć złożoność obliczeniową. Próbowałem RANSAC w celu znalezienia znikających punktów (VP), które łączą dwie różne grupy linii, ale nie powiodły się prawdopodobnie z powodu błędu wykrywania (?).
Wykres rozproszenia parametrów linii we współrzędnych biegunowych jest jak poniżej. Chodzi zasadniczo o klasyfikację punktów na dwie grupy: górne punkty tworzące poziomą linię; dolne lewe punkty, które również tworzą linię z głębokim nachyleniem. Czy istnieje jakiś sposób, aby to zrobić? Dzięki
Hi @Martin, dziękuję. Podążyłem za twoją sugestią, ale utknąłem tam. jak dopasować wykryte linie do modeli? Chciałem spróbować wyszukiwania kombinatorycznego, ale myślę, że będzie za wolno. czy masz jakieś sugestie dotyczące zmiany, którą zaktualizowałem? –
@YeqingZhang spójrz na sekcję kalibracji kamery/3d w opencv. Kort tenisowy jest podobny do szachownicy używanej do kalibracji - znasz rzeczywiste 3d współrzędne linii współrzędnych sądu i ich projekcję na obrazie. –