opencv学习笔记八:图像,视频与数据文件

HighGUI模块包含了静止图像的读写以及视频流的捕获与存储相关的功能。

图像的载入与保存

cv::imread()读取图片

关于图片的读取,虽然有很多内在的讲究,但我们完全可以不关心他,我们仅知道这个函数的两个参数是啥,咋用就可以了;

imread(
		const string& filename,    //文件名
		int           flags = cv::IMREAD_COLOR   //标识符
	);
	IMREAD_COLOR  总是读取三位通道图像
	IMREAD_GRAYSCALE  总是读取单通道图像
	IMREAD_ANYCOLOR   通道数由实际通道数(不超过3)
	IMREAD_ANYDEPTH   允许加载超过8bit深度

cv::imwrite()保存图像

	imwrite(
		const string&    filename,    //给定图片存储的文件名
		cv::InputArray   image,  //带存储的输入图像
		const vector<int>&  params = vector<int>()  //特殊类型文件的写入操作是所需的数据 
	)

视频的处理

打开视频对象

打开一个视频对象或者打开一个摄像头设备,有两种思路,一种为使用构造函数:

	VideoCapture cap1("1.avi");   //打开工程目录下名为1.avi的文件
	VideoCapture cap2(0);    //打开设备号为0的摄像头

还有一种可以先创建一个视频流对象,再对该对象进行.open()操作:

	VideoCapture cap3,cap4;
	cap3.open("1.avi");
	cap4.open(0);

读取图片

从视频流中读取图像也有两种方法,
一种是使用VideoCapture::read()函数进行读取:

	Mat frame;
	cap1.read(frame);

另一种为使用输入流操作符:

	cap1 >> frame;

读取和设置视频对象数据

视频文件中有很多可以设置的参数,我们通常使VideoCapture::get()和VideoCapture::set()函数来进行设置:

VideoCapture::get(
		int  propid
	  );
VideoCapture::set(
	int  propid,
	double  value
  );

在这里插入图片描述
在这里插入图片描述

发布了26 篇原创文章 · 获赞 40 · 访问量 3649

猜你喜欢

转载自blog.csdn.net/qq_43667130/article/details/102987654