Python se fige après cv2.destroyWindow()
Je suis en utilisant openCV sous Python 2.7 sur Mac OS X (Lion)...Chaque fois que j'exécute le code pour afficher simplement un flux de caméra (à partir de iSight) Python se fige. Il ressemble à la caméra n'est pas vraiment de se laver. J'ai utilisé un certain nombre de versions différentes du même code (ci-dessous, qui est une autre question), et obtenir les mêmes résultats (en cv ou cv2). Quelqu'un a une idée pourquoi ce qui se passe? Voici le code:
import cv2
cv2.namedWindow("camera",1)
capture = cv2.VideoCapture()
capture.open(0)
while True:
img = capture.read()[1]
cv2.imshow("camera", img)
if cv2.waitKey(10) == 27: break
cv2.destroyWindow("camera")
Il peut-être un bug dans la bibliothèque. Avez-vous essayé d'appeler
Hm. J'ai juste essayé d'ajouter
Donc le problème semble être dans la
Ouais, les sons de cette façon. Essayé de l'enlever
capture.release()
explicitement?Hm. J'ai juste essayé d'ajouter
capture.release()
avant cv2.destroyWindow("camera")
et, bien qu'il ne nettoyer l'appareil photo (l'iSight lumière s'éteint), Python encore se fige.Donc le problème semble être dans la
destroyWindow
lui-même. Qu'il ne gèle si vous supprimez le destroyWindow
appel (fenêtre doit être fermée automatiquement lorsque le script se termine) ou le remplacer par cv2.destroyAllWindows()
?Ouais, les sons de cette façon. Essayé de l'enlever
cv2.destroyWindow("camera")
(si le script se termine avec capture.release()
) et toujours il se fige. Puis essayé de remplacer cv2.destroyWindow("camera") with
destroyAllWindows()` et aussi se fige. Je serais heureux d'envoyer un rapport de bug sur cette question et de présenter un rapport si vous avez une idée de qui j'ai contact au sujet d'une telle chose.
OriginalL'auteur caseyanderson | 2012-12-05
Vous devez vous connecter pour publier un commentaire.
C'est un problème avec tous les *nux. S'il vous plaît vérifier à cette question et de la réponse à la question sur StackOverflow.
DestroyWindow ne pas fermer la fenêtre sur Mac à l'aide de Python et OpenCV
En bref, il semble que vous aurez besoin de faire appel waitKey() pour que la pompe de message dans OpenCV.
OriginalL'auteur user1899365
Vérifier cette autre méthode,
IL EXIGE ANACONDA ENVIRONNEMENT
Ma suggestion est d'exécuter du code en python dans le terminal. Vous ne serez pas face à tout type de problème
Copiez le code et enregistrer avec filename.py
puis ouvrez le répertoire spécifique, puis ouvrir un terminal
Ouvrir la borne -
cd path/to/filename.py
source d'activer YOURPROFILE
python filename.py
Cela permettra de résoudre le problème
https://youtu.be/8O-FW4Wm10s
OriginalL'auteur R K Bhalodia
j'ai eu le même problème et c'est ma solution.
et après la boucle de mettre ce
PD: dans cette ligne de code de capture = cv2.VideoCapture() vous devez définir une valeur de l'appareil photo.
OriginalL'auteur Erika Giselle Gutierrez
IDE qui vous aide? J'ai été confrontée au même problème quand j'utilise le
default IDE
(INACTIF) mais, ensuite, j'ai installéPyCharm
, cela fonctionne parfaitement maintenant, l'image de la fenêtre se ferme instantanément, également utiliserwaitkey(0)
.OriginalL'auteur Suraj Sirohi