Можно ли отключить автофокус веб-камеры в Windows 10?

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

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

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

в окнах я пробовал:

  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, я считаю, что проблема в бэкэнде videoio. Можете ли вы предложить какой-нибудь другой бэкэнд или, возможно, аналог v4l для окон, поддерживаемых opencv.


person nick    schedule 09.04.2019    source источник


Ответы (1)


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

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

person nick    schedule 10.04.2019