OpenCV——讀取視頻文件並寫入文件

1、代碼如下:

#include<opencv2/opencv.hpp>     

using namespace cv;

//-----------------------------------【main()函數】--------------------------------------------    
//                描述:控制檯應用程序的入口函數,我們的程序從這裏開始    
//-------------------------------------------------------------------------------------------------    
void main()
{
//【1】從視頻文件讀入視頻    
	VideoCapture capture("祝福片.avi");//讀取視頻文件
	if (!capture.isOpened())//沒有打開視頻文件的話,就返回。  
		return;
	Size size0 = Size(capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT));
	VideoWriter writer("out.avi", CV_FOURCC('X', 'V', 'I', 'D'), capture.get(CV_CAP_PROP_FPS), size0, true); 
//【2】循環顯示每一幀    
	while (1)
	{
		Mat frame; //定義一個Mat變量,用於存儲每一幀的圖像    
		capture >> frame;  //讀取當前幀 
		writer << frame;//等同於writer.write(frame);寫入幀。
		if (frame.empty())
		{
			break;
		}
		imshow("Video", frame); //顯示當前幀  
		waitKey(30); //延時30ms    
	}
	capture.release();//釋放資源  
	destroyAllWindows();//關閉所有窗口  
}

2、效果如下:


3、程序運行目錄下寫入了一個名爲“out.avi”的視頻文件。


4、注意事項: 

1)寫入視頻前需安裝對應的編解碼器 (如:XVID)

2)生成視頻是否支持彩色應與構造函數設置一致 

3)生成視頻尺寸需與讀取視頻尺寸一致
發佈了46 篇原創文章 · 獲贊 88 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章