Загрузить RAW YUV видео в OPENCV - PullRequest
2 голосов
/ 17 ноября 2011

У меня проблема с загрузкой видео в формате RAW YUB в OpenCV. Я могу воспроизвести его в mplayer с помощью следующей команды:

mplayer myvideo.raw -rawvideo w=1280:h=1024:fps=30:y8 -demuxer rawvideo

Мой код для загрузки в OpenCV:

CvCapture* capture=cvCaptureFromFile("C:\\myvideo.raw");

cvCaptureFromFile всегда возвращать NULL. Но если я попробую с обычным файлом avi, код будет работать нормально (захват не равен нулю).

Я работаю с последней версией OpenCV под Windows 7.

РЕДАКТИРОВАТЬ: выходные сообщения

[IMGUTILS @ 0036f724] Picture size 0x0 is invalid  
[image2 @ 009f3300] Could not find codec parameters (Video: rawvideo, yuv420p)

Спасибо

1 Ответ

1 голос
/ 17 ноября 2011

OpenCV использует ffmpeg в качестве серверной части, однако он включает только подмножество функций ffmpeg.Что вы можете попробовать, так это установить несколько кодеков.(K-lite помог мне некоторое время назад)

Но, если ваша цель - получить необработанный YUV в OpenCV, ответ - «невозможно».

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

Что вы можете сделать (для имитации ввода YUV), это захватить avi, преобразовать в YUV

cvtColor(...,CV_BGR2YCBCR /* or CV_BGR2YUV */ );

и затем обработать его

...