Estoy usando opencv 2.4.2, python 2.7
El siguiente código crea una ventana con el nombre correcto, pero su contenido es solo 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?

  • La ruta de archivo puede estar equivocado. Windows utiliza \ no /. No estoy seguro de si OpenCV tolera / en Windows? Si la fijación de eso no ayuda, entonces asegúrese de que su imagen está en la ubicación correcta y es una imagen válida.
InformationsquelleAutor top.eng | 2014-02-16

12 Comentarios

  1. 186

    imshow() sólo funciona con waitKey():

    import cv2
    img = cv2.imread('C:/Python27/03323_HD.jpg')
    cv2.imshow('ImageWindow', img)
    cv2.waitKey()

    (Todo el mensaje de bucle necesarios para la actualización de la ventana está oculto allí.)

    • compruebe print img imprime una correcta numpy matriz, no NoneType objeto.
    • Para que quede claro para la posteridad, en circunstancias normales, esta sería la respuesta correcta. La omisión de la waitKey voluntad (por lo general) resultado en exactamente el comportamiento descrito en la pregunta.
  2. 38

    He encontrado la respuesta que trabajó para mí aquí:
    http://txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html

    Si ejecuta un sistema interactivo de ipython sesión, y desea utilizar highgui
    de windows, hacer cv2.startWindowThread() en primer lugar.

    En detalle: HighGUI es una interfaz simplificada para la visualización de imágenes y
    video de OpenCV código. Debería ser tan fácil como:

    import cv2
    img = cv2.imread("image.jpg")
    cv2.startWindowThread()
    cv2.namedWindow("preview")
    cv2.imshow("preview", img)
    • Usted puede cerrar después por cv2.destroyAllWindows()
  3. 20

    Debe utilizar cv2.waitKey(0) después de cv2.imshow("window",img). Sólo entonces se va a trabajar.

    import cv2
    img=cv2.imread('C:/Python27/03323_HD.jpg')
    cv2.imshow('Window',img)
    cv2.waitKey(0)
  4. 7

    Me enfrentamos al mismo problema. Traté de leer una imagen de INACTIVIDAD y trató de mostrar que el uso de cv2.imshow(), pero la ventana de la pantalla se congela y se muestra pythonw.exe no responde al intentar cerrar la ventana.

    El post de abajo da una posible explicación de por qué esto está sucediendo

    pythonw.exe no responde

    «Básicamente, no hagas esto de INACTIVIDAD. Escribir un script y ejecutarlo desde el shell o la secuencia de comandos directamente si en windows, por nombrar una .pyw extensión y haga doble clic en él. Al parecer, hay un conflicto entre la INACTIVIDAD del propio bucle de eventos y a la de las herramientas gráficas (GUI).«

    Cuando he usado imshow() en un script y ejecutarlo en lugar de ejecutarlo directamente a través de INACTIVIDAD, funcionó.

    • Por favor, añadir la explicación proporcionada en el enlace (mínimo) porque los enlaces pueden ir rancio… Gracias 🙂
    • Bump ya que este es el problema que tengo, pero… «no hagas esto» no es la respuesta que estoy buscando =)
  5. 6

    Si se ejecuta en la consola de Python, hacer esto:

    img = cv2.imread("yourimage.jpg")
    
    cv2.imshow("img", img); cv2.waitKey(0); cv2.destroyAllWindows()

    Si luego presione Entrar en la imagen, va a cerrar exitosamente la imagen y se puede proceder a la ejecución de otros comandos.

  6. 3

    Tienes todas las piezas necesarias en algún lugar en este hilo:

    if cv2.waitKey(): cv2.destroyAllWindows()

    funciona bien para mí en RALENTÍ.

  7. 1

    Si usted no ha hecho este trabajo, es mejor poner

    import cv2
    img=cv2.imread('C:/Python27/03323_HD.jpg')
    cv2.imshow('Window',img)
    cv2.waitKey(0)

    en un archivo y ejecutarlo.

  8. 0

    Si usted elige utilizar «cv2.waitKey(0)», asegúrese de que usted ha escrito «cv2.waitKey(0)» en lugar de «cv2.waitkey(0)», debido a que en minúsculas «k» puede congelar su programa también.

    • El método con la minúscula clave no existe en la API. El código lanzaría un error como el método no existe.
  9. 0

    Tuve el mismo 215 error, que yo era capaz de superar al dar la ruta completa de la imagen, como en, C:\Folder1\Folder2\filename.ext

    • Lo «mismo 215 error»? Ningún lugar en el OPs pregunta es cualquier error mencionado. También OP es el uso de una ruta de acceso completa a la imagen, así que no veo cómo esto responde a la pregunta.
  10. 0

    error: (-215) de tamaño.width>0 && tamaño de.altura>0 en función imshow

    Este error se produce porque la imagen no se encuentra. Así que no es un error de la función imshow.

    • No es relevante para esta cuestión.

Dejar respuesta

Please enter your comment!
Please enter your name here