J'essaie d'obtenir et de peindre des coins dans une image. Maintenant, j'ai une liste de tuples avec le format suivant: (row,column,scale)
(l'échelle est parce que j'utilise une pyramide gaussienne), obtenue manuellement à partir du processus harrisCornerDetector et nonMaximumSupression. Cette liste est featuresy1
.Comment utiliser OpenCV cornerSubPix() en Python?
Mon code est le suivant:
r,g,b=cv2.split(image)
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
cv2.cornerSubPix(r, featuresy1, (5,5), (-1,1), criteria)
où l'image est une image en niveaux de gris avec trois formes identiques. Comme vous pouvez le voir, je donne à cornerSubPix
comme second paramètre une structure comme celle-ci: [(x1,y1,scale1),(x2,y2,scale2),...,(xn,yn,scalen)]
.
Ce jette l'erreur suivante:
cv2.cornerSubPix(r, featuresy1, (5,5), (-1,1), criteria)
TypeError: corners is not a numpy array, neither a scalar
Pour cette raison, je me demande quel type, le format ou la structure devraient avoir featuresy1
faire cornerSubPix()
travailler. Est-ce la seule chose que je fais mal? Il n'y a pas beaucoup de documentation à ce sujet.
Merci!