Python opencv drawContours no muestra nada

Seguí el tutorial en esta página, pero no parece que ocurra nada cuando se cv2.drawContours(im,contours,-1,(0,255,0),3) la línea cv2.drawContours(im,contours,-1,(0,255,0),3) . Esperaba ver star.jpg con un contorno verde, como se muestra en el tutorial. Aquí está mi código:

 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 

No hay mensajes de error. star.jpg es la estrella de la página web mencionada anteriormente. Estoy usando la versión 2.4.8 de opencv y Python 2.7.

¿Se supone que drawContours muestra una imagen en mi pantalla? Si es así, ¿qué hice mal? Si no, ¿cómo muestro la imagen?

Gracias

Editar:

Añadiendo las siguientes líneas se mostrará la imagen:

 cv2.imshow("window title", im) cv2.waitKey() 

Se necesita waitKey () de lo contrario, la ventana solo mostrará un fondo gris. Según esta publicación , eso se debe a que waitKey () le dice que comience a manejar el evento WM_PAINT.

Tuve el mismo problema. Creo que el problema es que la imagen subyacente es de 1 canal en lugar de 3 canales. Por lo tanto, debe configurar el color para que no sea cero en el primer elemento (por ejemplo, (255,0,0)).

Yo también tuve el mismo problema. La cosa es que se muestra, pero demasiado oscura para que nuestros ojos la vean. Solución: cambie el color de (0,255,0) (por alguna extraña razón, ¡yo también le di exactamente el mismo color!) A (128,255,0) (o un color más shiny)

Tienes que hacer algo al efecto de:

 cv2.drawContours(im,contours,-1,(255,255,0),3) cv2.imshow("Keypoints", im) cv2.waitKey(0)