本文共 1032 字,大约阅读时间需要 3 分钟。
HighGUI模块包含了静止图像的读写以及视频流的捕获与存储相关的功能。
关于图片的读取,虽然有很多内在的讲究,但我们完全可以不关心他,我们仅知道这个函数的两个参数是啥,咋用就可以了;
imread( const string& filename, //文件名 int flags = cv::IMREAD_COLOR //标识符 );
IMREAD_COLOR 总是读取三位通道图像 IMREAD_GRAYSCALE 总是读取单通道图像 IMREAD_ANYCOLOR 通道数由实际通道数(不超过3) IMREAD_ANYDEPTH 允许加载超过8bit深度
imwrite( const string& filename, //给定图片存储的文件名 cv::InputArray image, //带存储的输入图像 const vector & params = vector () //特殊类型文件的写入操作是所需的数据 )
打开一个视频对象或者打开一个摄像头设备,有两种思路,一种为使用构造函数:
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 );
转载地址:http://rdewi.baihongyu.com/