Détecter des cartes et des rectangles sur la table blanche avec OpenCV en Python?

J'ai essayé de comprendre comment aller sur la détection des cartes sur une table, puis extraire les images de tout les cartes. Après avoir fait un peu de lecture, j'ai pensé qu'il est préférable d'utiliser des cv.Habile à bord de détecter car les cartes seront les seules choses sur le tableau blanc. Ensuite, obtenir la carte de l'image à partir d'une ouverture rectangulaire de l'image selon les bords détectés.

Mais je ne suis pas sûr de la façon d'obtenir de l'information de pointe(coordonnées) de l'Habile info. Je peux obtenir le Savant de l'information et de la stocker dans un IplImage, mais je ne suis pas sûr de la façon d'obtenir les informations nécessaires pour créer un rectangle autour de la carte et la découpe de l'image.

import cv

cam = cv.CaptureFromCAM(0)

while True:
    capture = cv.QueryFrame(cam)

    #apply mask to block out white background
    grey = cv.CreateImage(cv.GetSize(capture), 8, 1)
    masked_image = cv.CreateImage(cv.GetSize(capture), 8, 3)
    cv.CvtColor(capture, grey, cv.CV_BGR2GRAY)
    cv.Threshold(grey, grey, 100, 255, cv.CV_THRESH_BINARY)
    cv.Zero(masked_image)
    cv.Not(grey, grey)
    cv.Copy(capture, masked_image, grey)

    #detect corners
    corners = cv.CreateImage(cv.GetSize(masked_image), 8, 1)
    #cv.CornerHarris(masked_image, corners, ?)
    cv.Canny(grey, corners, 900, 890)
    cv.ShowImage('b_window', corners)
    cv.WaitKey(2)
InformationsquelleAutor user594044 | 2012-03-27