Я работаю с python opencv, и я не могу отключить автофокус, автоэкспозицию и т. Д. В Windows 10.
Я использую веб-камеру Logitech BRIO 4k.
На Ubuntu 18.04 все работает отлично. С Opencv 3.4.4, использующим серверную часть v4l, я могу успешно установить фокус, экспозицию и разрешение видео. Однако тот же код не работает в окнах
в окнах я пробовал:
Неофициальные предварительно созданные пакеты OpenCV для Python: opencv-contrib-python https://pypi.org/project/opencv-contrib-python/
сборка из исходного кода opencv 3.4.3 с бэкэндами MSMF, VFW, DSHOW. С VFW я вообще не могу открыть захват видео
сборка из исходного кода 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.