Удаление чересстрочного видео с 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() контролировать чересстрочную развертку (чтобы полученное изображение не имело этих черных линий)

0 ответов

Другие вопросы по тегам