2013-04-29 61 views
0

我需要使用cvShowImage以jpeg格式顯示視頻電影。我使用以下代碼將每個幀讀入字節緩衝區:使用cvShowImage顯示JPEG視頻

CVD :: BasicImage FrameBytes = imageFromFile(Filename);

接着,我想用顯示幀:

cvShowImage(WinName,幀);

但是,cvShowImage接受IplImagecvMat格式的幀。如何將原始字節發送到cvShowImage?

+0

如果您嘗試從視頻文件中讀取幀。我建議使用OpenCV中提供的視頻捕獲。你也可以參考這篇文章。 http://stackoverflow.com/questions/16185456/how-to-play-and-detect-an-object-using-captured-video-in-background-subtractor-m/16186105#16186105 – praks411 2013-04-29 15:50:16

回答

0

如果你有圖像大小(寬度,高度)的原始緩衝區,那麼你可以使用下面的獲取IplImage。

IplImage *m_img_show; 
uchar *m_pBuffer; 
CvSize cv_img_size = cvSize(m_width, m_height); 
m_img_show = cvCreateImageHeader(cv_img_size, IPL_DEPTH_8U,3); 
cvSetData(m_img_show, m_pBuffer,m_width*3); 

m_width和m_height是幀的寬度和高度。 m_pBuffer是原始圖像數據。