TLE
Więc tworzę program, który rozpoznaje ruchy szachowe. Do tej pory wdrożyłem wiele algorytmów, aby uzyskać najlepsze możliwe wyniki. Do tej pory odkryłem, że połączenie niezniekształcania obrazu (przy użyciu undistortu), a następnie zastosowanie algorytmu wyrównania histogramu, a wreszcie algorytmu goodFeaturesToTrack (stwierdziłem, że jest to lepsze niż wykrywanie rogu harris) daje całkiem przyzwoite wyniki. Celem jest, aby każdy róg każdego kwadratu był rozliczany punktowo. W ten sposób, gdy zastosuję detekcję canny edge, mogę przetwarzać pojedyncze kwadraty.OpenCV: Najlepszy sposób wykryć na rogach szachownicy
Przykład
co ja UWAŻANYCH
Podsumowując powyższy link, chodzi o to, aby znaleźć górnym skrajnym lewym, Ograniczenie górne prawe, dolne-lewe i dolne-prawe punkty i dzielą odległość między nimi o osiem. Stamtąd możesz wymyślić prawdopodobne punkty i porównać je z punktami, które faktycznie znajdują się na planszy. Jeśli któryś z punktów nie pasuje, po prostu zamień punkt.
Rozważyłem również pewien rodzaj trybu, np. Znajdowanie odległości między sąsiednimi punktami i zapisywanie ich na liście. Następnie wykonałbym operację trybu, aby obliczyć najbardziej prawdopodobną odległość i użyć jej do rysowania punktów.
PYTANIE
Jak widać, punkty są dość dokładne w większości placów (chociaż są losowe punkty, które nie robią tego, co chcę). Moje pytanie brzmi: jak myślisz, w jaki sposób najlepiej znaleźć wszystkie rogi na szachownicy (jestem otwarty na wszystkie pomysły) i czy możesz podać mi nieco dokładniejszy opis (tylko tyle, aby kierować mną we właściwym kierunku lub więcej, jeśli wybierzesz :)? Ponadto (i to jest pytanie wtórne) czy macie jakieś zalecenia, jak postępować, aby jak najlepiej rozpoznać ruch? Próbuję wprowadzić wiele sposobów na zrobienie tego i zamierzam porównać metody, aby uzyskać najlepsze wyniki! Dziękuję Ci.
Dziękuję. Przejrzałem te artykuły i dostarczyły mi one wglądu. Dzięki! – user1243
martwy link, proszę zaktualizować –
@StepanYakovenko zaktualizowany. – guneykayim