文章目录

  • 图片的载入与显示
  • 1.imread
  • 2.nameWindow
  • 3.imshow
  • 4.imwrite


图片的载入与显示

1.imread

Mat imread(const string& filename, intflags=1 );
第一个参数,const string&类型的filename,填我们需要载入的图片路径名
第二个参数,int类型的flags,为载入标识,它指定一个加载图像的颜色类型
忽略这个参数 表示载入三通道的彩色图像

CV_LOAD_IMAGE_ANYDEPTH, 如果取这个标识的话,若载入的图像的深度为16位或者32位,就返回对应深度的图像,否则,就转换为8位图像再返回。
CV_LOAD_IMAGE_COLOR, 如果取这个标识的话,总是转换图像到彩色一体
CV_LOAD_IMAGE_GRAYSCALE, 如果取这个标识的话,始终将图像转换成灰度1

如果输入有冲突的标志,将采用较小的数字值。比如CV_LOAD_IMAGE_COLOR | CV_LOAD_IMAGE_ANYCOLOR 将载入3通道图。

如果想要载入最真实的图像,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR
因为flags是int型的变量,如果我们不在这个枚举体中取值的话,还可以这样来:

flags >0返回一个3通道的彩色图像。
flags =0返回灰度图像。
flags <0返回包含Alpha通道的加载的图像。

2.nameWindow

void namedWindow(const string& winname,int flags=WINDOW_AUTOSIZE );
第一个参数,const string&型的name,即填被用作窗口的标识符的窗口名称。
第二个参数,int 类型的flags ,窗口的标识,可以填如下的值:

WINDOW_NORMAL设置了这个值,用户便可以改变窗口的大小(没有限制)
WINDOW_AUTOSIZE如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小。
WINDOW_OPENGL 如果设置了这个值的话,窗口创建的时候便会支持OpenGL
注意他有默认值WINDOW_AUTOSIZE

3.imshow

void imshow(const string& winname, InputArray mat);
第一个参数,const string&类型的winname,填需要显示的窗口标识名称。
第二个参数,InputArray 类型的mat,填需要显示的图像。

4.imwrite

bool imwrite(const string& filename,InputArray img, const vector& params=vector() );
第一个参数,const string&类型的filename,填需要写入的文件名就行了,带上后缀,比如,“123.jpg”这样
第二个参数,InputArray类型的img,一般填一个Mat类型的图像数据就行了。
第三个参数,const vector&类型的params,表示为特定格式保存的参数编码,它有默认值vector()