wakasann
6/19/2018 - 2:49 PM

study opencv3 1.6

opencv播放视频

#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
	//打开视频文件
	VideoCapture capture(0); //"1.mp4"
	
	//isOpen判断视频是否打开成功
	if (!capture.isOpened())
	{
		cout << "Movie open Error" << endl;
		return -1;
	}
	//获取视频帧频
	double rate = capture.get(CV_CAP_PROP_FPS);
	cout << "帧率为:" << " " << rate << endl;
	cout << "总帧数为:" << " " << capture.get(CV_CAP_PROP_FRAME_COUNT) << endl;//输出帧总数

	namedWindow("Movie Player");

	Mat frame; //定义一个Mat变量,用于存储每一帧的图像
	Mat edges; 
	double position = 0.0;

	//设置播放哪一帧,这里设置为第0帧
	capture.set(CV_CAP_PROP_POS_FRAMES, position);

	while (1)
	{
		if (!capture.read(frame))
			break;
		//将原图像转换为灰度图像
		cvtColor(frame, edges, COLOR_BGR2GRAY);
		
		//capture >> frame; //读取当前帧
		//使用3 x3 内核来降噪( 2 x 3 + 1 = 7)
		blur(edges, edges, Size(7, 7));
		//进行canny 边缘检测并显示
		Canny(edges, edges, 0, 33 , 3);
		imshow("Movie Player", frame);
		//imshow("Movie Player", edges);
		char c = waitKey(33);
		if (c == 27)
			break;
		//waitKey(30);
	}
	capture.release();
	destroyWindow("Movie Player");
	return 0;
}