OpenCV加载视频

一、加载视频

	//视频路径
	QString appPath = QCoreApplication::applicationDirPath();
	QString videoPath = appPath + "/vtest.avi";
	cv::VideoCapture capture;
	capture.open(videoPath.toStdString(),CAP_FFMPEG);
	//从摄像头读取
	//capture.open(0, CAP_DSHOW);

	cv::Mat frame;
	while (true) {
		//读帧
		bool ret = capture.read(frame);
		if (!ret)
			break;
		imshow("frame", frame);
		//添加帧处理 等待 100 毫秒,检查用户是否按下键盘上的按键
		char c = waitKey(100);
		//按下的是 ESC 键 (ASCII 值为 27),则跳出循环,停止播放视频
		if (c == 27)
			break;
	}
	waitKey(0);
	destroyAllWindows();

二、获取视频属性

	//视频路径
	QString appPath = QCoreApplication::applicationDirPath();
	QString videoPath = appPath + "/vtest.avi";
	cv::VideoCapture capture;
	capture.open(videoPath.toStdString(),CAP_FFMPEG);

	qDebug() << u8"高:" << capture.get(CAP_PROP_FRAME_HEIGHT);
	qDebug() << u8"宽:" << capture.get(CAP_PROP_FRAME_WIDTH);
	qDebug() << u8"帧率FPS:" << QString::number(capture.get(CAP_PROP_FPS));
	qDebug() << u8"总帧率:" << capture.get(CAP_PROP_FRAME_COUNT);

三、保存视频

	//视频路径
	QString appPath = QCoreApplication::applicationDirPath();
	QString videoPath = appPath + "/vtest.avi";
	cv::VideoCapture capture;
	capture.open(videoPath.toStdString(), CAP_FFMPEG);


	qDebug() << u8"高:" << capture.get(CAP_PROP_FRAME_HEIGHT);
	qDebug() << u8"宽:" << capture.get(CAP_PROP_FRAME_WIDTH);
	qDebug() << u8"帧率FPS:" << capture.get(CAP_PROP_FPS);
	qDebug() << u8"总帧率:" << capture.get(CAP_PROP_FRAME_COUNT);

	//保存视频路径
	QString savevideoPath = appPath + "/output.avi";

	cv::VideoWriter writer(savevideoPath.toStdString(), capture.get(CAP_PROP_FOURCC), capture.get(CAP_PROP_FPS), Size(capture.get(CAP_PROP_FRAME_WIDTH), capture.get(CAP_PROP_FRAME_HEIGHT)));

	cv::Mat frame;
	while (true) {
		//读帧
		bool ret = capture.read(frame);
		if (!ret)
			break;
		imshow("frame", frame);
		//添加帧处理 
		writer.write(frame);
		//等待 100 毫秒,检查用户是否按下键盘上的按键
		char c = waitKey(100);
		//按下的是 ESC 键 (ASCII 值为 27),则跳出循环,停止播放视频
		if (c == 27)
			break;
	}
	capture.release();
	writer.release();
	waitKey(0);
	destroyAllWindows();

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenCvSharp视频编辑器是基于OpenCvSharp库开发的一款视频编辑工具。OpenCvSharp是一个提供了C#语言绑定的OpenCV开源计算机视觉库,使开发者能够在C#环境下使用OpenCV的强大功能。 通过OpenCvSharp视频编辑器,我们可以对视频文件进行多种操作。首先,它提供了视频的截取功能,可以将视频文件从指定的时间范围内进行截取,得到我们需要的片段。其次,视频编辑器可以通过调整视频的帧率来改变视频的播放速度,实现快进、慢放等效果。此外,还可以进行图像添加、删除和替换操作,使得我们可以在视频中添加图片、文字等内容,让视频更加丰富多样。 OpenCvSharp视频编辑器还支持视频的合并和分割功能。合并功能允许我们将多个视频文件合并成一个文件,使得观看更加方便。而分割功能则可以将一个视频文件分割成多个片段,方便我们进行后续的处理和使用。 除了基本的视频编辑功能外,OpenCvSharp视频编辑器还提供了一些高级的特效操作。比如可以调整视频的亮度、对比度和饱和度,提高视频的画质。还可以进行视频的模糊处理,实现特殊效果的添加。此外,还支持视频的旋转、翻转和裁剪等操作,使得我们可以对视频进行更加灵活的处理。 总之,OpenCvSharp视频编辑器是一款功能强大、操作简便的视频编辑工具,可以满足我们对视频编辑的多种需求。无论是简单的剪辑还是复杂的特效处理,OpenCvSharp视频编辑器都能够提供便捷的操作和高质量的结果。 ### 回答2: OpenCVSharp是一个开源的计算机视觉库,它提供了一系列功能强大的图像和视频处理工具。这个库以C#语言编写,为开发人员提供了方便易用的接口,使他们能够在C#环境中轻松地实现各种计算机视觉任务。 OpenCVSharp视频编辑器是基于OpenCVSharp库开发的一个应用程序,它专门用于视频编辑。这个编辑器提供了一系列视频处理功能,包括视频剪辑,拼接,分割,变速,特效添加等。 使用OpenCVSharp视频编辑器,开发人员可以方便地加载视频文件,对视频进行各种处理,如裁剪视频片段、合并多个视频片段、调整视频的播放速度等。此外,该编辑器还提供了一系列特效和滤镜,可以让用户为视频添加转场效果、改变视频色彩风格、添加文字水印等。 OpenCVSharp视频编辑器还提供了一个直观的用户界面,使用户能够轻松地进行操作。用户可以通过简单的拖放操作添加视频文件,调整视频处理参数,并即时预览处理效果。同时,编辑器还支持批量处理多个视频文件,提高处理效率。 总之,OpenCVSharp视频编辑器是一个功能全面、易于使用的视频编辑工具。它基于OpenCVSharp库,提供了丰富的视频处理功能,同时具备简洁直观的用户界面。无论是专业开发人员还是普通用户,都可以使用该编辑器轻松地对视频进行编辑和处理。 ### 回答3: OpenCvSharp是一个基于OpenCV库的开源计算机视觉库,它提供了一系列功能强大的图像处理和计算机视觉算法。在其中,OpenCvSharp也提供了视频编辑器的功能。 OpenCvSharp的视频编辑器可以用于对视频进行处理、修改和编辑。它可以读取视频文件,并提供了一系列方法和函数,可以对视频进行裁剪、旋转、缩放、滤镜等操作。例如,我们可以使用OpenCvSharp实现视频的剪辑,只提取出视频的某一部分进行处理或者保存。 此外,OpenCvSharp还提供了一些高级的视频处理技术。例如,我们可以使用这个库来实现运动检测,识别视频中的物体移动并进行相应的处理。另外,还可以通过OpenCvSharp实现视频的帧差法,即比较相邻帧之间的像素变化,来检测和识别视频中的物体。 总的来说,OpenCvSharp提供了丰富的视频处理功能,可以满足各种视频编辑的需求。它易于使用并具有较高的性能,因此在计算机视觉和视频处理领域中得到广泛应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值