(Добавлять KSPROPERTY_CAMERACONTROL_SCANMODE
в KSPROPERTY_VIDCAP_CAMERACONTROL
?)
Работая с веб-камерой, я получаю чересстрочное видео. Доступ к этой веб-камере осуществляется с помощью DirectShow с использованием библиотеки videoInput (как часть OpenCV).
Я не могу найти способ управления этим (чересстрочным) режимом с помощью доступных в настоящее время опций / перечислений в OpenCV, поэтому я покопался в MSDN и обнаружил следующее:
IAMCameraControl
Интерфейс может быть использован для получения / установки различных свойств, если они перечислены в PROPSETID_VIDCAP_CAMERACONTROL
(http://msdn.microsoft.com/en-us/library/dd389145(v=vs.85).aspx#methods)PROPSETID_VIDCAP_CAMERACONTROL
перечисляет 3 блока перечислений (один для «до класса USB-видео», один для UVC и один для Win8), и среди этих значений есть тот, который мне интересен! Это KSPROPERTY_CAMERACONTROL_SCANMODE
(http://msdn.microsoft.com/en-us/library/ff567802(v=vs.85).aspx)C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\strmif.h
Файл, который я вижу, представляет собой список значений, который охватывает только «оригинальный» набор, который предварительно UVC, поэтому он не имеет контроля для чересстрочного режима. Перечисление в этом файле выглядит так с сайта MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/dd318253(v=vs.85).aspxМой вопрос:
Как? 🙂 Что нужно сделать, чтобы добавить необходимое значение (или набор значений), которые предположительно поддерживаются системой? Что мне не хватает?
MSDN, кажется, держит карты близко к своему телу и не раскрывает многое, поэтому я прошу хороших людей здесь о помощи.
Я надеюсь, что кто-то там понял, как это сделать, и может поделиться мудростью.
Моя конечная цель состоит в том, чтобы использовать setVideoSettingCamera()
контролировать чересстрочную развертку (чтобы полученное изображение не имело этих черных линий)
Задача ещё не решена.
Других решений пока нет …