Python opencv drawContours ne montrent rien
J'ai suivi le tutoriel à cette page mais rien ne semble se produire lorsque la ligne cv2.drawContours(im,contours,-1,(0,255,0),3)
est exécutée. Je m'attendais à voir star.jpg avec un contour vert, comme indiqué dans le tutoriel. Voici mon code:
import numpy as np
import cv2
im = cv2.imread('C:\Temp\ip\star.jpg')
print im.shape #check if the image is loaded correctly
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(im,contours,-1,(0,255,0),3)
pass
Il n'y a pas de messages d'erreur. star.jpg est la star de cette page web.
Je suis à l'aide d'opencv version 2.4.8 et Python 2.7.
Est drawContours censé afficher une image sur mon écran? Si oui, qu'ai-je fait de mal? Si non, comment puis-je afficher l'image?
Grâce
Edit:
Ajoutant les lignes suivantes vont montrer l'image:
cv2.imshow("window title", im)
cv2.waitKey()
waitKey() est nécessaire sinon la fenêtre indiquera seulement un arrière-plan gris. Selon ce post, c'est parce que waitKey() lui dit de commencer la manipulation de la WM_PAINT événement.
im
pour le voir.OriginalL'auteur King Long Tse | 2014-03-03
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Je crois que le problème est que l'image sous-jacente est de 1-canal plutôt que 3 canaux. Par conséquent, vous devez définir la couleur de sorte qu'il est différent de zéro dans le premier élément (par exemple, (255,0,0)).
OriginalL'auteur Daniel Andersen
moi aussi j'avais le même problème. Le truc, c'est qu'il montre, mais trop sombre pour que nos yeux pour voir.
Solution:
changer la couleur de (0,255,0) (pour quelque étrange raison, moi aussi j'avais exactement la même couleur!) (128,255,0) (ou mieux de couleur plus claires)
OriginalL'auteur patel deven
Que vous avez à faire quelque chose à l'effet de:
OriginalL'auteur Derek Janni