Быстрое преобразование из YUY2 в RGB24
-
19-09-2019 - |
Вопрос
Я пишу программу, которая будет выполнять некоторые преобразования изображения с веб-камеры в режиме реального времени.Как и почти все другие веб-камеры, моя 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/