【OpenCV】视频文件摄像头使用及视频处理与保存

视频文件摄像头使用

完整代码

void QuickDemo::video_demo(Mat &image) 
{
    
    
	VideoCapture capture(0);  //打开摄像头
	Mat frame;//定义一个二值化的 frame
	
	while (true)
	{
    
    
		capture.read(frame); //读取视频
		//flip(frame, frame, 1);//图像镜像操作
		if(frame.empty())//如果视频为空的话 跳出操作
		{
    
    
			break;
		}
		imshow("frame", frame);//显示视频
		colorSpace_Demo(frame);//对视频调用之前的demo
		int c = waitKey(100);//停顿100ms 做视频处理都是1
		if (c == 27) {
    
     //esc 退出应用程序
			break;
		}
	}
	capture.release();//释放相机的资源
}


视频处理与保存

视频的属性

SD(标清),HD(高清),UHD(超清),蓝光。

如何读取视频文件,以及读取视频文件的属性,衡量视频处理指标:FPS。

保存视频时的编码格式。

保存视频的实际size和create的size大小保持一致。

完整代码

void QuickDemo::video_demo(Mat &image) 
{
    
    
	VideoCapture capture("D:/images/123.mp4");
	int frame_width = capture.get(CAP_PROP_FRAME_WIDTH);//获取视频的宽度
	int frame_height = capture.get(CAP_PROP_FRAME_HEIGHT);//获取视频的高度
	int count = capture.get(CAP_PROP_FRAME_COUNT);//视频总的帧数
	//fps是衡量处理视频的能力
	double fps = capture.get(CAP_PROP_FPS);
	std::cout << "frame width" << frame_width << std::endl;
	std::cout << "frame height" << frame_height << std::endl;
	std::cout << "frame FPS" << fps << std::endl;
	std::cout << "frame count" << count << std::endl;
	VideoWriter writer("D:/test.mp4",capture.get(CAP_PROP_FOURCC),fps,Size(frame_width, frame_height),true);
	//参数1 保存地址。参数2 获取图片的格式 参数3 图片的帧数 参数4 视频宽高 参数5 真
	Mat frame;
	while (true)
	{
    
    
		capture.read(frame);
		//flip(frame, frame, 1);//图像镜像操作
		if(frame.empty())
		{
    
    
			break;
		}
		imshow("frame", frame);
		colorSpace_Demo(frame);
		writer.write(frame);

		int c = waitKey(100);//停顿100ms 做视频处理都是1
		if (c == 27) {
    
     //esc 退出应用程序
			break;
		}
	}
	capture.release();//释放相机的资源
	writer.release();//释放存放的资源
}

猜你喜欢

转载自blog.csdn.net/qq_44824148/article/details/120803404