Étant donné une image d'une carte connect-4, j'aimerais reconnaître et afficher l'état de la carte (une matrice 6 par 7). La première approche que j'ai essayée a été basée sur la recherche des cercles et ensuite la recherche d'un motif de grille dans leurs centroïdes.Comment puis-je détecter une grille de cercles pleins?
C'est la fonction open-cv J'utilise:
circles = cv2.HoughCircles(bw_im,
cv2.cv.CV_HOUGH_GRADIENT,
dp=DP,
minDist=MIN_DIST,
minRadius=MIN_RADIUS,
maxRadius=MAX_RADIUS)
-je ajouter une suppression non maximale, mais les résultats ne sont pas grands.
Y at-il une meilleure façon de traiter avec les milieux Hough directement, peut-être il y a une sorte de circularité rempli opération morphologique que je ne connais pas.
est ici une image d'entrée exemple:
Vous pouvez supposer que l'image d'entrée a été recadrée et a des marges similaires comme ci-dessus (j'ai un autre morceau de code qui se charge de cela).
Cercles, pourquoi faut-il que ce soit des cercles? Peut-être plus simple de segmenter les blobs rouges/jaunes et d'utiliser leurs centroïdes. – kazemakase
Jetez un oeil à 'cv2.inRange', par ex. [ici] (http://www.pyimagesearch.com/2014/08/04/opencv-python-color-detection/), Vous pouvez facilement segmenter le rouge et le jaune (et éventuellement le bleu) en convertissant d'abord votre image en HSV. – Miki
je recommanderais l'espace de couleur de HSV aussi et la segmentation ou la détection de contour etc. – Micka