Je suis en train d'essayer d'obtenir la plus grande zone dans une image avec OpenCV et Python, voici le code :
#Chargement de l'image :
fuente=cv.LoadImage('train/fruit1.jpg')
#Conversion en niveaux de gris...
#Conversion en binaire...
#Application de la méthode de Canny...
#Dilatation des bords...
#Essai d'obtenir les contours :
storage = cv.CreateMemStorage(0)
contours = cv.FindContours(bordes, storage, cv.CV_RETR_EXTERNAL, cv.CV_CHAIN_APPROX_SIMPLE,(0,0))
#Traçage des contours...
contornoimg=cv.CreateImage(cv.GetSize(fuente),fuente.depth,1)
cv.DrawContours(contornoimg,contours,cv.Scalar(255),cv.Scalar(0),2,1,8,(0,0));
cv.SaveImage("train/contornos.png",contornoimg);
Si j'ouvre maintenant l'image "contornos.png", je peux voir différents contours, pas seulement un, comme je veux le contour le plus grand, je dois calculer le contour avec la plus grande zone
max_area = -1
best_cnt = None
for cnt in contours:
area = cv.ContourArea(cnt,slice=cv.CV_WHOLE_SEQ)
if area > max_area:
max_area = area
best_cnt = cnt
Mais lorsque j'exécute le fichier, j'obtiens ce message d'erreur :
cv.ContourArea(cnt,cv.CV_WHOLE_SEQ)->AttributeError: 'module' object has no attribute 'CV_WHOLE_SEQ'
Une aide ? Merci pour tout !