OpenCV(视频加载与摄像头使用)

目录

1、VideoCapture类

2、视频属性get() 

3、视屏文件保存


1、VideoCapture类

2、视频属性get() 

3、视屏文件保存

//视频的读取保存
int test3()
{
	VideoCapture video;
	//video.open("F:/testMap/lolTFT.mp4");//读取视频
	video.open(0);//读取摄像头
	if (!video.isOpened())
	{
		cout << "打开失败,请检查摄像头或文件" << endl;
		return -1;
	}
	cout << "视频帧率="<<video.get(CAP_PROP_FPS) << endl; 
	cout << "视频宽度=" << video.get(CAP_PROP_FRAME_WIDTH) << endl;

	Mat img;
	video >> img;//获取图像
	//检测是否成功获取图像
	if (img.empty())//判断有没有读取图像成功
	{
		cout << "没有获取到图像"<< endl ;
		return -1;
	}
	bool isColpr = (img.type() == CV_8UC3);//判断相机(视频)类型是否为彩色
	VideoWriter writer;
	int codec = VideoWriter::fourcc('M', 'J','P','G'); //选择编码格式
	double fps = 25.0;//设置视频帧率
	string filename = "F:/testMap/live.avi";//保存的视频文件名称
	writer.open(filename,codec,fps,img.size(),true);//创建保存视频文件的视频流
	if (!writer.isOpened())//判断视频流是否创建成功
	{
		cout << "打开视频文件失败,请确实是否为合法输入" << endl;
		return -1;
	}

	//通过摄像头保存视屏
	while (1)
	{
		//检测是否执行完毕
		if (!video.read(img))//判断能都继续从摄像头或者视频文件中读出一帧图像
		{
			cout << "摄像头断开连接或者视频读取完成" << endl;
			break;
		}
		writer.write(img); //把图像写入视频流
		writer << img;
		imshow("Live", img); //显示图像
		char c = waitKey(50);
		if (c == 27)//按ESC案件退出视频保存
			break;
	}




	//读取视频播放
	//while (true)
	//{
	//	Mat frame;
	//	video >> frame;//把视频当前帧传给frame
	//	if (frame.empty())
	//	{
	//		break;
	//	}

	//	imshow("video",frame);
	//	uchar c = waitKey(1000 / video.get(CAP_PROP_FPS) /2);//2倍速播放

	//	//按q退出
	//	if (c == 'q')
	//	{
	//		break;
	//	}
	//}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OpenCV是一个计算机视觉库,可以用来处理图像和视频。它提供了许多用于图像处理和计算机视觉任务的函数和工具。在提供的引用中,代码展示了如何使用OpenCV库来进行摄像头人脸检测。 首先,代码使用`cv2.VideoCapture(0)`打开本机的摄像头,然后通过循环读取每一帧图像。接下来,将图像转换为灰度图像,这有助于人脸检测算法的准确性。然后,通过调用`cv2.CascadeClassifier('haarcascade_frontalface_default.xml')`人脸识别文件。接着,使用`face_cascade.detectMultiScale()`函数检测图像中的人脸,并将检测到的人脸用矩形框标记出来。 在人脸检测后,代码使用`frame[y:y+h, x:x+w`来提取人脸区域。然后将人脸打码,这里的打码是通过缩小原始人脸图像的尺寸,然后将其重复放大以覆盖原始人脸区域。最后,使用`cv2.imshow()`显示图像,并使用`cv2.waitKey()`等待用户按下键盘上的 'q' 键退出程序。 总结来说,这段代码是通过OpenCV库实现了从摄像头实时采集图像,并进行人脸检测和打码的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [opencv MFC 摄像头 人脸识别](https://download.csdn.net/download/mygudou/5004145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [小实验:python+opencv实现摄像头人脸识别、人脸马赛克](https://blog.csdn.net/aiyaya333/article/details/124399175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhang丶&|!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值