Можно ли отключить автофокус веб-камеры на Windows 10? - PullRequest
2 голосов
/ 09 апреля 2019

Я работаю с python opencv и не могу отключить автофокус, автоэкспозицию и т. Д. На windows 10.

Я использую веб-камеру Logitech BRIO 4k.

На Ubuntu 18.04 все отлично работает. С Opencv 3.4.4, использующим бэкэнд v4l, я могу успешно установить фокус, экспозицию и разрешение видео. Однако тот же код не работает на Windows

на окнах, которые я пробовал:

  1. Неофициальные предварительно собранные пакеты OpenCV для Python: opencv-contrib-python https://pypi.org/project/opencv-contrib-python/

  2. сборка из исходного кода opencv 3.4.3 с бэкэндами MSMF, VFW, DSHOW. С VFW я вообще не могу открыть захват видео

  3. сборка из исходного кода opencv 4.1 с MSMF, бэкэнды DSHOW

в каждом случае, указанном выше (кроме бэкэнда VFW), я могу использовать функциональность opencv, читать и показывать кадры с веб-камеры, но не могу отключить автофокусировку.

код, который я использую из официального репозитория opencv GitHub https://github.com/opencv/opencv/blob/master/samples/python/video_v4l2.py

Я создаю захват видео, чтобы указать бэкэнд VideoCapture(0 + BACKEND_ID), откуда берется BACKEND_ID https://docs.opencv.org/3.4.3/d4/d15/group__videoio__flags__base.html

переменная среды OPENCV_VIDEOIO_DEBUG=True подтверждает, что я использую определенный бэкэнд

Вопросы на ту же тему без ответов Отключение автофокуса веб-камеры в Windows с помощью opencv-python

cap.set( cv.CAP_PROP_SETTINGS, 1 ); не работает как на Windows, так и на Linux

Поскольку код работает на linux, я считаю, что проблема в видеообработке. Можете ли вы предложить какой-нибудь другой бэкэнд или, возможно, аналог v4l для Windows, который поддерживает opencv.

1 Ответ

0 голосов
/ 10 апреля 2019

Забыл упомянуть, я использовал виртуальную коробку для запуска на Windows. Если я запускаю один и тот же код на машине с Windows, то напрямую все работает)) Должна быть какая-то проблема с виртуальной коробкой

Единственное отличие состоит в том, что значения фокусировки находятся в диапазоне 0-255. Но в приведенном выше примере кода они находятся в диапазоне 0-100

...