2017-06-02 101 views
0

黑白圖像,我使用的ffmpeg從該extract_mvs.c:隨着FFmpeg的例子extract_mvs.c,我正在從彩色攝像機RTSP

https://ffmpeg.org/doxygen/2.5/extract__mvs_8c_source.html

我加的OpenCV到imwrite圖像。

cv::Mat img(frame->height,frame->width,CV_8UC1,frame->data[0]); 
imwrite("pic.jpg", img); 

因爲幀中的圖像是灰度的,所以可以工作。然而,相機是一臺彩色相機,我不知道爲什麼我得到灰度。如果我將上述內容轉換爲CV_8UC3,則會出現分段錯誤。

我試着用ppm_save函數保存圖像,當應該有一個彩色框架時,我仍然會得到一個黑白框。有任何想法嗎?

謝謝, 克里斯

回答

0

剛剛看了一下圖形文件格式和這樣。 JPG需要BGR24格式。原始幀緩衝區格式YUV420P需要使用swscale轉換爲BGR24。然後將輸出幀的高度和寬度需要調用之前手動設定:

cv::Mat img(out_frame->height,out_frame->width,CV_8UC3,out_frame->data[0]); 
imwrite("pic.jpg", img); 

同樣地,PPM文件格式需要RGB24和原始格式需要保存ppm的文件之前要轉換此。

謝謝, Chris