Отключите автофокус в библиотеке видеовхода или OpenCV - PullRequest
10 голосов
/ 08 февраля 2012

Я использую библиотеку видеовхода для получения кадров с веб-камеры. Я хочу установить ФОКУС этой камеры в коде C.

Камера имеет AUTO FOCUS . Разве нет способа отключить автофокусировку и установить конкретное значение фокусировки .

С уважением, Салех ...

Ответы [ 4 ]

11 голосов
/ 14 июля 2016

Если вы используете версию OpenCV 3.1.0-dev и Python 2.7.5, вам поможет следующий фрагмент кода;)

cap = cv2.VideoCapture(1) # my webcam
cap.set(3, 1280) # set the resolution
cap.set(4, 720)
cap.set(cv2.CAP_PROP_AUTOFOCUS, 0) # turn the autofocus off

С моей Logitech HD Pro Webcam C920 работает нормально.В cv2 есть много других классных функций управления, таких как cv2.CAP_PROP_BRITHNESS или cv2.CAP_PROP_CONTRAST.Посмотрите, что показывает автозаполнение;)

5 голосов
/ 09 февраля 2012

Вы пробовали это: https://stackoverflow.com/a/1718009/7531 Требуется использование DirectShow, но это должно быть возможно.

В противном случае, вы смотрели документацию OpenCV для CameraCapture .В разделе, касающемся параметров камеры, показано, как - в общем случае - при управлении параметрами камеры при быстром просмотре videoinput.h должны отображаться параметры автофокусировки. Это полный пример такой настройки автофокуса.

IAMCameraControl - это интерфейс Windows для управления параметрами.

Обратите внимание, что в зависимости отиспользуемой веб-камерой и / или конкретной версией встроенного программного обеспечения управление фокусировкой / автофокусировкой может оказаться невозможным.

2 голосов
/ 11 июня 2014

Я искал эти проблемы в течение нескольких дней и пробовал библиотеку видеовхода и директ-шоу. Если вы просто хотите настроить параметры камеры один раз (вручную) внутри opencv, самый простой способ, который я нашел, это:

VideoCapture cap(0);
cap.set(CV_CAP_PROP_SETTINGS, 1);

появится окно для настройки параметров. достаточно отключить автофокус.

Недостаток этого метода в том, что если вы хотите контролировать фокусное расстояние с помощью программы, он не может этого сделать.

1 голос
/ 11 июня 2014

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

Чтобы сделать это, не используя OpenCV, вы можете выполнить одно из следующих действий:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...