J'utilise opencv 2.4.2, python 2.7 Le code simple suivant a créé une fenêtre du nom correct, mais son contenu est juste vide et n'affiche pas l'image:
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
est-ce que quelqu'un est au courant de ce problème?
python
opencv
image-processing
top.eng
la source
la source
Réponses:
imshow()
fonctionne uniquement avecwaitKey()
:(Toute la boucle de message nécessaire à la mise à jour de la fenêtre y est cachée.)
la source
print img
imprime un tableau numpy correct, pas unNoneType
objet.J'ai trouvé la réponse qui a fonctionné pour moi ici: http://txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html
la source
Vous devez utiliser
cv2.waitKey(0)
aprèscv2.imshow("window",img)
. Ce n'est qu'alors que cela fonctionnera.la source
Si vous exécutez dans une console Python, procédez comme suit:
Ensuite, si vous appuyez Entersur l'image, cela fermera l'image avec succès et vous pourrez continuer à exécuter d'autres commandes.
la source
J'ai fait face au même problème. J'ai essayé de lire une image de IDLE et essayé de l'afficher en utilisant
cv2.imshow()
, mais la fenêtre d'affichage se fige et montre qu'ellepythonw.exe
ne répond pas en essayant de fermer la fenêtre.Le post ci-dessous explique pourquoi cela se produit
pythonw.exe ne répond pas
" Fondamentalement, ne faites pas cela depuis IDLE. Écrivez un script et exécutez-le à partir du shell ou du script directement si dans Windows, en le nommant avec une extension .pyw et en double-cliquant dessus. Il y a apparemment un conflit entre le propre événement d'IDLE. loop et ceux des toolkits GUI. "
Quand je l'ai utilisé
imshow()
dans un script et que je l'exécute plutôt que de l'exécuter directement sur IDLE, cela fonctionnait.la source
ajouter
cv2.waitKey(0)
à la fin.la source
Pour moi, waitKey () avec un nombre supérieur à 0 a fonctionné
la source
Vous avez toutes les pièces nécessaires quelque part dans ce fil:
fonctionne bien pour moi dans IDLE.
la source
Si vous ne l'avez pas fait, vous feriez mieux de mettre
dans un fichier et exécutez-le.
la source
N'a pas besoin de méthodes supplémentaires après
waitKey(0)
(réponse pour le code ci-dessus)La fenêtre apparaît -> Cliquez sur la fenêtre et cliquez sur Entrée. La fenêtre se fermera.
la source
Si vous choisissez d'utiliser «cv2.waitKey (0)», assurez-vous que vous avez écrit «cv2.waitKey (0)» au lieu de «cv2.waitkey (0)», car ce «k» minuscule peut également geler votre programme .
la source
J'ai également eu une erreur -215. Je pensais qu'imshow était le problème, mais quand j'ai changé imread pour lire dans un fichier inexistant, je n'ai eu aucune erreur. J'ai donc mis le fichier image dans le dossier de travail et ajouté cv2.waitKey (0) et cela a fonctionné.
la source
Cette erreur est produite car l'image est introuvable. Ce n'est donc pas une erreur de la fonction imshow.
la source
J'ai eu la même erreur 215, que j'ai pu surmonter en donnant le chemin complet de l'image, comme dans C: \ Folder1 \ Folder2 \ filename.ext
la source