0
我想閱讀和使用opencv顯示視頻。我用Direct-show錄製,視頻有UYVY(4:2:2)編解碼器,因爲opencv無法讀取該格式,我想將編解碼器轉換爲RGB顏色模型,我參考了ffmpeg並且我想要知道是否有可能用它完成這項工作?如果不是,如果你有一個建議,我會很感激。轉換UYVY FFmpeg
我想閱讀和使用opencv顯示視頻。我用Direct-show錄製,視頻有UYVY(4:2:2)編解碼器,因爲opencv無法讀取該格式,我想將編解碼器轉換爲RGB顏色模型,我參考了ffmpeg並且我想要知道是否有可能用它完成這項工作?如果不是,如果你有一個建議,我會很感激。轉換UYVY FFmpeg
作爲I explained to you before,OpenCV可以讀取某些格式的YUV,包括UYVY(感謝FFmpeg/GStreamer)。所以我相信你從相機中獲得的cv::Mat
已經轉換爲BGR色彩空間,這是OpenCV默認使用的。
我修改previous program來存儲視頻爲PNG的第一幀:
cv::Mat frame;
if (!cap.read(frame))
{
return -1;
}
cv::imwrite("mat.png", frame);
for(;;)
{
// ...
而且形象是完美的。在mat.png執行命令file
顯示:
mat.png: PNG image data, 1920 x 1080, 8-bit/color RGB, non-interlaced
一個更精確的測試將是轉儲整個frame.data()
到磁盤,並以一個圖像編輯器中打開它。如果你這樣做,請記住R和B通道將被切換。
'UYVY'是[popular]像素格式之一。你絕對可以使用DirectShow API從這個文件中讀取所有的標準方法。 Windows中內置了轉換爲RGB。很難說出爲什麼你不能使用你創建的文件。 – 2013-02-13 19:28:01
我知道閱讀,但我不知道如何轉換它' – Engine 2013-02-13 19:32:49
我從來沒有聽說過** RBB **,它是什麼? – karlphillip 2013-02-13 20:52:46