1. 程式人生 > >opencv讀取視訊檔案,並將視訊檔案儲存為圖片

opencv讀取視訊檔案,並將視訊檔案儲存為圖片

#include <iostream>
#include <windows.h>
 
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <opencv/cv.h>
 
 
 
using namespace cv;
using namespace std;
 
 
int main(int argc, char **argv)
{
	
	Mat srcImg, grayImg;
 
	//視訊檔案路徑
	string filename = "D:\\test.avi";
	
	VideoCapture cap0;
	cap0.open(filename);
 
	cap0 >> srcImg;
 
	//用於調整儲存影象的尺寸
	int Imgw = 320;
	int Imgh = 240;
 
	int countNums = 0;
	
	//儲存圖片的路徑
	char imagename[20];
	while (cap0.isOpened())
	{
		countNums++;
 
		cap0 >> srcImg;
		if (srcImg.empty())
			break;
 
		//可能需要對儲存影象進行的處理
		//resize(srcImg, srcImg, cv::Size(Imgw, Imgh));
		//cvtColor(srcImg, grayImg, CV_BGR2GRAY);
       
		imshow("srcImg", srcImg);
		waitKey(1);
		//當前為儲存偶數幀,儲存條件可以修改
		if (countNums % 2 == 0)
		{
			//路徑可以使絕對路徑,也可以是相對路徑
			sprintf(imagename, "%d.jpg", countNums);
			imwrite(imagename, srcImg);
 
		}
 
	}
 
	return 0;
}