2014-12-17 17 views
10

SFONDO

Quindi sono la creazione di un programma che riconosce mosse degli scacchi. Finora, ho implementato un buon numero di algoritmi per ottenere i migliori risultati possibili. Quello che ho trovato finora è che la combinazione di non distorcere un'immagine (usando non distorto), quindi di applicare un algoritmo di equalizzazione dell'istogramma, e infine l'algoritmo goodFeaturesToTrack (ho trovato che questo è migliore del rilevamento dell'angolo di harris) rende abbastanza decente risultati. L'obiettivo qui è quello di avere ogni angolo di ogni quadrato rappresentato con un punto. In questo modo, quando applico il rilevamento dei bordi canny, posso elaborare singoli quadrati.OpenCV: Il modo migliore per rilevare gli angoli sulla scacchiera

ESEMPIO

enter image description here

quello che ho considerato

http://www.nandanbanerjee.com/index.php?option=com_content&view=article&id=71:buttercup-chess-robot&catid=78&Itemid=470

Per riassumere il link qui sopra, l'idea è di trovare in alto a sinistra, in alto a a destra, in basso a sinistra e in basso a destra e dividono la distanza tra loro per otto. Da lì verrebbe fuori con punti probabili e li confronterai con i punti che sono effettivamente sulla lavagna. Se uno dei punti non corrisponde, basta sostituire il punto.

Ho anche considerato una sorta di modalità, come trovare la distanza tra i punti vicini e memorizzarli in una lista. Quindi eseguirò un'operazione in modalità per calcolare la distanza più probabile e usarla per disegnare punti.

DOMANDA

Come si può vedere, i punti sono abbastanza precisa sulla maggior parte delle piazze (anche se ci sono punti casuali che non faccio quello che voglio). La mia domanda è quale pensi sia il modo migliore per trovare tutti gli angoli della scacchiera (sono aperto a tutte le idee) e potresti darmi una descrizione un po 'dettagliata (quanto basta per guidarmi nella direzione giusta o più se scegli :)? Inoltre, (e questa è una domanda secondaria) hai qualche suggerimento su come procedere per riconoscere al meglio una mossa? Sto tentando di implementare diversi modi per farlo e sto andando a confrontare i metodi per ottenere i migliori risultati! Grazie.

risposta

Problemi correlati