参考 自opencv3编程入门一书
图形用户界面主要内容包括图像载入,显示和输出到文件
在opencv1.0时代 图像的存储结构体都是IplImage × 在2.0以后,采用Mat 类作为图像存储的数据结构
1,Mat类
默认情况下大小是0 也可以指定大小,Mat(200,600,Scalar::all(0));
2,图像的载入与显示
imread 和imshow
Mat imread(const string & filename,int flag = 1 );
filename: 文件名字
flag :载入标示
在higui_c.h中可以找到枚举
enum
{
CV_LOAD_IMAGE_GRAYSCALE = 0, 8位灰度图
CV_LOAD_IMAGE_COLOR =1, 彩色图
CV_LOAD_IMAGE_ANYDEPTH=2, 返回对应深度的图像
CV_LOAD_IMAGE_ANYCOLOR=4, 返回对象颜色的图像
}
flag是int 类型变量
flag >0 返回一个3通道的彩色图像
flag =0 返回一个灰度图像
flag>0 返回一个alpha 通道的图像
void imshow(const string &winname,InputArray mat);
winname:窗口的名字
mat :需要显示的图像
3,创建窗口:namedWindow 函数
原型:void namedWindow(const string &winname,int flag = WINDOW_AUTOSIZE)
winname:窗口名字
flag:窗口标示
WINDOW_NORMAL 这个值用户可以改变窗口的大小
WINDOW_AUTOSIZE 窗口会自动调整自适应图像
4,输出图像到文件:imwrite 函数
原型:bool imwrite(const string &filename,InputArray img,const vector<int> ¶ms =vector<int>());
filename:文件名称
params:对于jpeg 图片 参数表示从0 到100 的图片质量 默认是95 ,对于png 的图片 这个参数表示压缩级别从0-9 默认是3