Muszę znaleźć kwadraty na obrazie przy użyciu OpenCV (bez problemu w Matlabie lub innym, ogólnie rzecz biorąc, oczekuję kilku pomysłów).
Rozważ poniższy obraz testowy:
Muszę dokładnie znaleźć te kolorowe kwadraty na powyższym obrazku (nie białe długie paski).
Co zrobiłem:
Zastosowałem wspólną metodę (która jest dostarczana z próbkami OpenCV), tj. Znajdź kontury we wszystkich płaszczyznach kolorów, przybliż ją i sprawdź liczbę elementów = 4. Działa do pewnego stopnia, że wykryto kilka kwadratów, szczególnie ciemnych.
Następnym krokiem było przewidywanie . tzn. to ustawienie jest ustalone . Jeśli więc niektóre zostaną uzyskane, mogę przewidzieć pozostałe. Działa również w pewnym stopniu. Ale dokładność była bardzo zła.
Ale wydaje mi się, że przewidywanie nie jest tutaj dobrą metodą i nie zawsze zapewnia dokładne odpowiedzi podane w pierwszym kroku.
Czego potrzebuję :
1) Czy istnieją inne lepsze metody dokładniejszego wykrywania tych kwadratów? Lub wiele metod?
Ważną kwestią jest to, że czas nie jest tutaj problemem . Algorytm może być powolny, to nie ma znaczenia. Ale dokładność jest głównym kryterium.
Czasami obrazy mogą być znacznie bardziej rozmyte.
Jednym z głównych problemów, z którymi się spotkałem, jest to, że niektóre kwadraty mają prawie podobny kolor jak tło (sprawdź kolumnę 3 pierwszy i drugi kwadrat).
Poszukuję pomysłów, z góry dziękuję
AKTUALIZACJA :
Poniżej znajduje się maksymalny dokładny wynik, jaki otrzymałem:
Oczywiście obraz wynikowy jest nieco przeskalowany.
AKTUALIZACJA 2:
W mojej odpowiedzi podałem znacznie lepsze rozwiązanie: https://dsp.stackexchange.com/a/7526/818