Este es probablemente uno de los errores más extraños que he encontrado al usar OpenCV. Están sucediendo muchas cosas, así que déjame tratar de explicar esto lo mejor que pueda.OpenCV imread colgando cuando se llama desde una solicitud web
Estoy utilizando el marco web de Django y OpenCV (cv2) juntos. Intento leer un archivo de mi disco desde una vista en Django.
imagePath = os.path.dirname(__file__) + "/1.jpg"
Básicamente, en la misma ruta que el archivo views.py, hay un archivo llamado "1.jpg". Eso es todo lo que este código está haciendo. Suficientemente fácil. Pero el siguiente paso es donde las cosas se vuelven locas.
Ahora, quiero leer el archivo de imagen ubicado en 'imagePath'. Esto requiere una llamada a cv2.imread
image = cv2.imread(imagePath)
Pero aquí es donde comienzan mis problemas. De alguna manera, Apache (o tal vez incluso OpenCV, no puedo decirlo) comienza a colgar y el archivo nunca se carga. No hay mensaje de error, no hay nada.
Haciendo un poco de trabajo detectivesco Decidí probar una versión anterior de OpenCV (import cv). Por extraño que parezca, cuando llamo a cv.LoadImage (imagePath) Apache no cuelga y mi imagen se carga muy bien. No tengo absolutamente ninguna idea de por qué.
Un posible problema para mi problema es utilizar PIL.
from PIL import Image
import numpy as np
image = Image.open(imagePath)
image = np.asarray(image)
Una vez más, usando PIL Apache no se cuelga y me puede proceder como normal con mi imagen representa como numpy matriz y aplicar cualquiera de las funciones CV2 a ella.
Sin embargo, no soy de los que se conforman con las soluciones y el hecho de que cv2.imread cuelgue realmente me molesta.
¿Alguien ha encontrado esto antes?
EDITAR: Usar cv.imread desde un shell de Python funciona bien, es solo por una solicitud de Apache que ocurre el bloqueo.
>>> import cv2
>>> image = cv2.imread("1.jpg")
>>> image.shape
(400, 344, 3)
>>>
estaba corriendo OpenCV 2.4.1 cuando se produjo este problema. Y luego compiló e instaló 2.4.0 y por cualquier razón, imread ya no se cuelga. Muy extraño. –
Tengo el mismo problema al usar OpenCV 2.4.2, extraño de hecho ... – Tickon
He encontrado este problema últimamente, ¿hay alguna solución para versiones anteriores de OpenCV? Parece funcionar bien usando OpenCV 2.4.6.1. – Mailerdaimon