OpenCV imread зависает при вызове из веб-запроса

Вероятно, это одна из самых странных ошибок, с которыми я когда-либо сталкивался при использовании OpenCV. Происходит многое, поэтому позвольте мне попытаться объяснить это в меру своих возможностей.

I am using the Django web framework and OpenCV (cv2) together. I am trying to read a file off my disk from a view in Django.

imagePath = os.path.dirname(__file__) + "/1.jpg"

Basically, in the same path as views.py file there is a file called "1.jpg". That is all this code is doing. Easy enough. But the next step is where things get crazy.

Now, I want to read the image file located at 'imagePath'. This requires a call to cv2.imread

image = cv2.imread(imagePath)

But this is where my problems start. Somehow, Apache (or maybe even OpenCV, I can't tell) starts hanging and the file is never loaded. There is no error message, no nothing.

Занимаясь детективной работой, я решил попробовать более старую версию OpenCV (import cv). Как ни странно, когда я вызываю cv.LoadImage (imagePath), Apache не зависает, и мое изображение загружается просто отлично. Я понятия не имею, почему.

Потенциальный способ обойти мою проблему - использовать PIL.

from PIL import Image
import numpy as np
image = Image.open(imagePath)
image = np.asarray(image)

Опять же, использование PIL Apache не зависает, и я могу продолжить как обычно с моим изображением, представленным в виде массива, и применить к нему любую из функций cv2.

Однако я не согласен на обходные пути, и тот факт, что cv2.imread зависает, действительно беспокоит меня.

Кто-нибудь сталкивался с этим раньше?

РЕДАКТИРОВАТЬ: Использование cv.imread из оболочки Python работает нормально, просто зависание от запроса Apache.

>>> import cv2
>>> image = cv2.imread("1.jpg")
>>> image.shape
(400, 344, 3)
>>> 

Ответы на вопрос(2)

Ваш ответ на вопрос