Удаление чересстрочного видео с DirectShow
(Добавлять 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)PROPSETID_VIDCAP_CAMERACONTROL
перечисляет 3 блока перечислений (один для "до класса USB-видео", один для UVC и один для Win8), и среди этих значений есть тот, который мне интересен! ЭтоKSPROPERTY_CAMERACONTROL_SCANMODE
( http://msdn.microsoft.com/en-us/library/ff567802(v=vs.85).aspx)- У меня установлен Windows 7.a SDK и в
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\strmif.h
Файл, который я вижу, представляет собой список значений, который охватывает только "оригинальный" набор, который является pre-UVC, поэтому он не имеет контроля для чересстрочного режима. Перечисление в этом файле выглядит так с сайта MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/dd318253(v=vs.85).aspx - Затем я нашел этот форум, где человек заявляет: "Мне пришлось обновить перечисление CameraControlProperty", чтобы добавить необходимые свойства, и это сработало для него ( http://sourceforge.net/p/directshownet/discussion/460697/thread/562ef6cf/)
Мой вопрос:как?:) Что нужно сделать, чтобы добавить необходимое значение (или набор значений), которые предположительно поддерживаются системой? Что мне не хватает?
MSDN, кажется, держит карты близко к своему телу и не раскрывает многое, поэтому я прошу хороших людей здесь о помощи.
Я надеюсь, что кто-то там придумал, как это сделать, и может поделиться мудростью.
Моя конечная цель состоит в том, чтобы использовать videoInput OpenCV setVideoSettingCamera()
контролировать чересстрочную развертку (чтобы полученное изображение не имело этих черных линий)