Estoy usando opencv 2.4.2, python 2.7 El siguiente código simple creó una ventana con el nombre correcto, pero su contenido está en blanco y no muestra la imagen:
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
¿Alguien sabe sobre este tema?
python
opencv
image-processing
top.eng
fuente
fuente
Respuestas:
imshow()
solo funciona conwaitKey()
:(Todo el bucle de mensajes necesario para actualizar la ventana está oculto allí).
fuente
print img
imprime una matriz numérica correcta, no unNoneType
objeto.Encontré la respuesta que me funcionó aquí: http://txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html
fuente
Debes usar
cv2.waitKey(0)
despuéscv2.imshow("window",img)
. Solo entonces funcionará.fuente
Si está ejecutando dentro de una consola de Python, haga esto:
Luego, si presiona Enterla imagen, la cerrará con éxito y podrá continuar ejecutando otros comandos.
fuente
Me enfrenté al mismo problema. Intenté leer una imagen de IDLE y traté de mostrarla usando
cv2.imshow()
, pero la ventana de visualización se congela y muestrapythonw.exe
que no responde al intentar cerrar la ventana.La publicación a continuación ofrece una posible explicación de por qué está sucediendo esto.
pythonw.exe no responde
" Básicamente, no hagas esto desde IDLE. Escribe un script y ejecútalo desde el shell o el script directamente si está en Windows, nombrándolo con una extensión .pyw y haciendo doble clic en él. Aparentemente, hay un conflicto entre el propio evento de IDLE loop y los de los kits de herramientas de la GUI " .
Cuando lo usé
imshow()
en un script y lo ejecuté en lugar de ejecutarlo directamente sobre IDLE, funcionó.fuente
agregar
cv2.waitKey(0)
al final.fuente
Para mí, waitKey () con un número mayor que 0 funcionó
fuente
Tienes todas las piezas necesarias en algún lugar de este hilo:
funciona bien para mí en IDLE.
fuente
Si no ha hecho que esto funcione, es mejor que ponga
en un archivo y ejecútelo.
fuente
No necesita ningún método adicional después
waitKey(0)
(responda para el código anterior)Aparece la ventana -> Haga clic en la ventana y haga clic en Entrar. La ventana se cerrará.
fuente
Si eliges usar "cv2.waitKey (0)", asegúrate de haber escrito "cv2.waitKey (0)" en lugar de "cv2.waitkey (0)", porque esa "k" minúscula también puede congelar tu programa. .
fuente
También tuve un error -215. Pensé que imshow era el problema, pero cuando cambié imread para leer en un archivo inexistente no obtuve ningún error allí. Así que puse el archivo de imagen en la carpeta de trabajo y agregué cv2.waitKey (0) y funcionó.
fuente
Este error se produce porque no se encuentra la imagen. Entonces no es un error de la función imshow.
fuente
Tuve el mismo error 215, que pude superar dando la ruta completa a la imagen, como en C: \ Folder1 \ Folder2 \ filename.ext
fuente