Вопрос

Я пишу программу, которая будет выполнять некоторые преобразования изображения с веб-камеры в режиме реального времени.Как и почти все другие веб-камеры, моя noname выдает данные в формате YUY2 (как написано в bmiHeader.biCompression).Я попробовал прямое преобразование на стороне процессора в соответствии с http://www.fourcc.org/yuv.php#YUY2, но это ОЧЕНЬ медленно и неправильно :).

Когда я подключаю выходной контакт источника к рендереру, изображение и частота кадров в порядке.

Итак, я ищу фильтр DirectShow или, может быть, какой-нибудь кодек, который будет выполнять быстрое преобразование из YUY2 в RGB24 на видеокарте и давать мне результат, не отображая его на экране.

Я использую:

  • 32-разрядная версия Windows XP SP3.
  • ВК++ 2005 г.
  • Недавно скачал Windows SDK.
  • DirectX, август 2009 г.
Это было полезно?

Решение

На данный момент у меня нет доступного кода.но взгляните на использование GDI для очень быстрого преобразования.

По сути, захватите исходный кадр, создайте файл памяти в правильном формате (rgb24) и преобразуйте его в растровое изображение.преобразование происходит во время блитинга и, по моему опыту, происходит очень быстро.

Я использую это для захвата кадров с веб-камеры, а затем могу перенести их на жесткий диск с необходимой частотой кадров в формате JPEG или растрового изображения.

ОКРУГ КОЛУМБИЯ

Другие советы

Вы можете использовать библиотеку VirtualDub Kasumi. http://virtualdub.sourceforge.net/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top