преобразование UYVY FFmpeg

Я хочу прочитать и показать видео, используя opencv. Я записал с Direct-show, видео имеет кодек UYVY (4: 2: 2), так как opencv не может прочитать этот формат, я хочу преобразовать кодек в цветовую модель RGB, я прочитал о ffmpeg и хочу узнать, возможно ли это покончить с этим? если нет, если вам предложение, я буду благодарен.

0

Решение

Как Я объяснил тебе раньше, OpenCV может читать некоторые форматы YUV, в том числе UYVY (спасибо FFmpeg / GStreamer). Так что я верю cv::Mat Вы получаете от камеры уже преобразованный в цветовое пространство BGR, которое OpenCV использует по умолчанию.

Я изменил мой предыдущая программа сохранить первый кадр видео в формате PNG:

cv::Mat frame;
if (!cap.read(frame))
{
return -1;
}

cv::imwrite("mat.png", frame);

for(;;)
{
// ...

И изображение идеально. Выполнение команды file на mat.png показывает:

mat.png: PNG image data, 1920 x 1080, 8-bit/color RGB, non-interlaced

Более точный тест — сбросить весь frame.data() на диск и откройте его с помощью редактора изображений. Если вы делаете это, имейте в виду, что каналы R и B будут переключаться.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]