У меня есть набор веб-API, которые я запускаю на Apache с WSGI для обработки изображений. Недавно я модернизировал свой OpenCV 3.2 (я использую Python 2.7) OpenCV, кажется, работает хорошо, когда я запускаю его из консоли, но когда я делаю веб-API вызывает OpenCV вешает на преобразование изображения в оттенках серого:OpenCV 3.2 зависает на cv2.cvtColor
cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Это абсолютно случайно, не удалось найти шаблон. Несколько раз он висит, а иногда он работает для одного и того же изображения. Любые идеи?
Дополнительная информация: Когда я делаю это из команды оболочки все работает отлично:
>>> sudo python manage.py shell
>>> import cv2
>>> import numpy as np
>>> from PIL import Image
>>> image = Image.open(img_path)
>>> image = np.asarray(image)
>>> print image
array([[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],...]]], dtype=uint8)
>>> img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
>>> print img
array([[255, 255, 255, ..., 255, 255, 255],
[255, 255, 255, ..., 255, 255, 255],
[255, 255, 255, ..., 255, 255, 255],
...,
[255, 255, 255, ..., 255, 255, 255],
[255, 255, 255, ..., 255, 255, 255],
[255, 255, 255, ..., 255, 255, 255]], dtype=uint8)
UPDATE: вопрос с WSGI. Когда я укажу более одного процесса в конфигурации apache для WSGIDaemonProcess, я могу легко воспроизвести зависания. После установки его на 1 он работает
WSGIDaemonProcess processes=1 threads=25 maximum-requests=100
Я до сих пор не знаю, почему многие процессы в WSGI вызвать проблемы
Вы осматривали размеры изображения, когда он висит? – ilke444
@ ilke444 тот, который я нашел, постоянно висит 852x852. Вот он: https://drive.google.com/open?id=0B_eaJCfhUFmFWmdJQzhKVGJNbDQ – Deman
Возможный дубликат [OpenCV imread висит при вызове из веб-запроса] (http://stackoverflow.com/questions/11315043/opencv-imread -hanging-когда-востребованный из-а-веб-запроса) – ilke444