2015-11-27 3 views
2

Я хочу использовать OpenCV в своем приложении Django. Поскольку OpenCV является библиотекой, я думал, что мы можем использовать ее, как и любую другую библиотеку.Использование OpenCV с Django

Когда я пытаюсь импортировать его с помощью import cv2 в представлениях Django, он отлично работает, но когда я пытаюсь сделать вызовы функций библиотеки в представлении Django, например cap = cv2.VideoCapture(0), и попытаться запустить приложение в моем браузере, ничего не происходит: шаблон не загружается и не трассируется в терминал, и приложение остается загруженным навсегда.

Не знаю, почему, но вызов функции cv2 не выполняется, как ожидалось. Поскольку нет следов, я не могу понять, в чем проблема. Если кто-нибудь может предположить, что не так? Правильно ли использовать OpenCV с Django?

ответ

0

Я прав, что вы мечтаете о приложении Django, которое может захватывать видео с вашей камеры? Это не сработает (по крайней мере, не так, как вы ожидаете).

Вы проверили какие-либо следы стека, оставленные вашим веб-сервером (одно из них - приложение Django, или тот, который был запущен как встроенный Django)?

Я предлагаю вам начать игру с OpenCV немного только из командной строки Python. Если вы используете Windows, используйте IDLE. Наблюдайте за поведением ваших звонков оттуда.

Приложение Django запускается на сервере приложений WSGI, где существует несколько ограничений, которые может и не может выполнять модуль определенного типа. Я не пытался повторить то, что вы сделали (у меня нет камеры, к которой я могу получить доступ).

Правильный способ обработки камеры в веб-приложении требует обработки браузера в JavaScript.

Небольшой отказ от ответственности в конце: я не говорю, что вы не можете использовать OpenCV вообще в приложении Django, но попытка доступа к камере - это не путь.

0

Используйте отдельный поток для вызова функции cv2, и приложение должно работать как шарм. Из того, что я рисую ... окончательная загрузка, вероятно, связана с тем, что видео никогда не прекращает запись, и поэтому код дальше вперед никогда не учитывается, ergo бесконечная страница загрузки. Потоки, вероятно, должны это сделать. :) :)

Смежные вопросы