OpenCV 实现读取摄像头、视频读取保存 (C++)

这篇具有很好参考价值的文章主要介绍了OpenCV 实现读取摄像头、视频读取保存 (C++)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、读取摄像头

重点语句:VideoCapture、imshow

原理:使用VideoCapture语句读取摄像头,再利用while一次次将VideoCapture所读取的数据利用imshow语句一帧帧地读取出来

#include <opencv2/opencv.hpp>
#include <iostream>
#include "CameraVideo.h"

using namespace cv;
using namespace std;

int main(int argc,char** argv) 
{
	VideoCapture video;   //用VideoCapture来读取摄像头
	Mat picture;   //声明一个保存图像的类
	video.open(0);   //括号的0表示使用电脑自带的摄像头
	if (!video.isOpened())    //判断摄像头是否读取成功
	{
		return -1;   //返回一个代数值,表示函数失败(若为return 1,则表示ture)
	}
	while(1)   //(读取成功,使用循环语句将视频一帧一帧地展示出来)
    {
		video >> picture;   //词条将video中的数据流向picture
		imshow("input", picture);   //使用imshow语句将图片显示出来
		waitKey(30);   //停顿30ms
	}
	return 0;
}
	

二、保存摄像头视频

重点语句:VideoWriter

原理:在摄像头读取完图之后,利用VideoWriter语句将图像保存为固定格式

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) 
{
	Mat picture;
	VideoCapture video(0);
	if (!video.isOpened()) 
	{
		return-1;
	}


	video >> picture;  
	VideoWriter outputVideo;   //用VideoWriter语句保存视频
	int codec = VideoWriter::fourcc('P', 'I','M','1');    //OpenCV4版本的编码设置格式
    //('P', 'I','M','1')—MPEG-1编码类型,文件扩展名.avi
	int fps = 25;  //设置帧率
	string outputVideoPath = "CameraVideo.mp4";   //保存视频的文件名
	outputVideo.open(outputVideoPath, codec, fps, picture.size());//创建保存视频文件的视频流
	if (!outputVideo.isOpened())   //判断视频流是否创建成功
	{
		return -1;
	}
	while (1)
	{
		if (!video.read(picture))   //检测是否能够读取一帧图像
		{
			break;
		}
		outputVideo.write(picture); //将video的图像数据一帧图像写入
		imshow("CameraVideo.mp4", picture);  //显示图像
		char c = waitKey(50);
		if (c == 27)  //按Esc保存视频
		{
			break;
		}
	}

	return 0;
}

三、如何按空格键保存摄像头视频

通过加入一个循环语句,按空格将图片按照1.2.3.4.5.6.的顺序保存下来文章来源地址https://www.toymoban.com/news/detail-506540.html

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
	Mat picture;
	VideoCapture video(0);
	if (!video.isOpened())
	{
		return-1;
	}


	 int i = 0;
	while (1)
	{
		video >> picture;
		imshow("input", picture);

		if (waitKey(20) == 32)    //设置为按空格保存
		{
			string name = to_string(i) + ".jpg";   //将照片以jpg的格式进行命名
			imwrite(name, picture);     //将按空格时的图像帧保存下来
			i++;
		}
		if (waitKey(10) == 27)    //按Esc键退出
		{
			break;
		}
	}
	return 0;
}

到了这里,关于OpenCV 实现读取摄像头、视频读取保存 (C++)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV 视频处理(关于摄像头和视频文件的读取、显示、保存等等)

    OpenCV不仅能够处理图像,还能够处理视频 视频是由大量的图像构成的 ,这些图像是以固定的时间间隔从视频中获取的。这样,就能够使用图像处理的方法对这些图像进行处理,进而达到处理视频的目的。要想处理视频,需要先对视频进行读取、显示、保存等相关操作。为此

    2024年03月14日
    浏览(34)
  • Opencv(C++)笔记--打开摄像头、保存摄像头视频

    关键代码语句: ① VideoCapture cam(0); ② cam.read(img); ③ imshow(\\\"cam\\\", img); 关键代码: ①VideoWriter vw ②vw.open(): fourcc指定编码格式(常见编码方式)、 fps指定帧率、 Size指定大小 ③vw.write() 注:在Windows上执行上述代码可能会报以下错误: 解决方法:在输出的网址下载对应版本的库

    2024年02月11日
    浏览(40)
  • OpenCV中读取、显示、保存摄像头视频讲解与实战(附Python源码)

    需要源码请点赞关注收藏后评论区留言私信~~~ OpenCV不仅能够处理图像,还能够处理视频。视频是由大量的图像构成的,这些图像以固定的时间间隔从视频中获取。这样,就能够使用图像处理的方法对这些图像进行处理,进而达到处理视频的目的。要处理视频,需要先对视频进

    2024年02月05日
    浏览(31)
  • OpenCV基础知识(9)— 视频处理(读取并显示摄像头视频、播放视频文件、保存视频文件等)

    前言: Hello大家好,我是小哥谈。 OpenCV不仅能够处理图像,还能够处理视频。视频是由大量的图像构成的,这些图像是以固定的时间间隔从视频中获取的。这样,就能够使用图像处理的方法对这些图像进行处理,进而达到处理视频的目的。要想处理视频,需要先对视频进行读

    2024年02月11日
    浏览(45)
  • OpenCV4(C++)—— 视频和摄像头的加载、显示与保存

      视频或摄像头的加载是使用 cv::VideoCapture 类。(这个类和 ifstream 类比较相似,视频或摄像头的加载和文本文件操作是大致相同。主要步骤:(1)加载(打开)视频或视像头。(2) 判断加载是否成功。 (3)读取内容。(4)关闭。) 注意:   (1)VideoCapture类变量同时

    2024年02月06日
    浏览(27)
  • Opencv(C++)系列学习---读取视频文件和打开摄像头

    今天学习的这两个内容比较简单,话不多说,直接上代码! 目录 【1】读取视频文件 【2】摄像头读取视频 运行结果:  这段代码较为简单,有兴趣的同学也可以挑战一下,在视频读取上加个进度条,可以通过鼠标拖动进度条到指定位置,像平时我们用的视频播放器一样,主

    2024年02月16日
    浏览(42)
  • 【opencv+图像处理】(Gui Features in OpenCV) 1-1摄像头:采集摄像头视频,读取视频帧,录制视频

    本专栏代码总库地址 https://github.com/xiawei20161308104/xv_opencv_tutorials 本节代码路径 xv_opencv_tutorials/VideoRelated/get_started_with_videos.py xv_opencv_tutorials/VideoRelated/get_and_set_video.py xv_opencv_tutorials/VideoRelated/save_video.py 参考官网 https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html 从设备,可以是摄像

    2024年02月03日
    浏览(57)
  • 使用OpenCV调用摄像头和读取视频图片

    要捕获视频,你需要创建一个 VideoCapture 对象。它的参数是设备索引的名称。设备索引就是指定哪个摄像头的数字。正常情况下,内部摄像头可以通过传入0来调用,传递1来选择外置的第二个相机,以此类推。在此之后,你可以逐帧捕获。但是在最后,不要忘记释放俘虏。 直

    2024年02月08日
    浏览(37)
  • OpenCv:采集摄像头视频、读取视频帧与视频录制

    目录 一、涉及OpenCv函数 二、什么是帧、帧的大小代表什么 三、摄像头获取视频数据 四、录制视频并保存 从设备,可以是摄像头可以是本地视频, 获取视频的函数 cv.VideoCapture()。 本函数作用在于创建一个VideoCapture或者VideoWriter对象,真正的读取和写入是通过创建的对象进行

    2024年02月16日
    浏览(34)
  • OpenCV保存摄像头视频和视频文件操作实战(附Python源码)

    需要源码和视频请点赞关注收藏后评论区留言私信~~~ 在实际开发过程中,很多时候希望保存一段视频,为此,OpenCV提供了VideoWriter类,下面先熟悉一下里面的各种方法 VideoWriter类的常用方法包括它的构造方法,write方法和release方法 语法如下 VideoWriter object=cv2.VideoWriter(filename

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包