OpenCV图像读入,显示,输出

原文链接:https://www.cnblogs.com/ivan-count/p/8893268.html

一、Mat imread(const string& filename,int flags=1),用于读取图片
1、参数介绍

filename:载入的图片的路径名。支持windows位图(bmp,dib)、JPEG文件(.jpeg,.jpg,.jpe)、JPEG2000文件(.jp2)、PNG图片(.png)、便携文件格式(.pbm,.pgm,.ppm)、Sun rasters光栅文件(.sr,.ras)、TIFF文件(.tiff,.tif)

flags:表示载入标识,指定加载图像的颜色类型,默认为三通道彩色图像。

常用标志符:

CV_LOAD_IMAGE_UNCHANGED——等价取值为-1
CV_LOAD_IMAGE_GRAYSCALE——等价取值为0,将图像转化为灰度
CV_LOAD_IMAGE_COLOR——等价取值为1,将图像转化为彩色
CV_LOAD_IMAGE_ANYDEPTH——等价取值为2,当载入图像深度为16位或32位,返回对应深度的图像,否则转化为8位图像返回
CV_LOAD_IMAGE_ANYCOLOR——等价取值为4,无损的源图像
 当输入有冲突时,采用较小数字值。CV_LOAD_IMAGE_COLOR|CV_LOAD_IMAGE_ANYCOLOR将载入三通道图;CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR将载入最真实无损的源图像。

若以数值表示,则:

flags>0返回一个3通道的彩色图像
flags=0返回灰度图像
flags<0返回包含Alpha通道的加载图像当以彩色载入时,通道顺序为BGR(蓝、绿、红),而非RGB。

二、void imshow(const string& winname,InputArray mat),用于显示一副图像
1、参数介绍

winname:填需要显示的窗口标志名称

mat:填需要显示的图像

2、注意事项

如果窗口用CV_WINDOW_AUTOSIZE(默认值)创建的,那么imshow将显示图像原始大小,否则将进行缩放以适应窗口:

如果图像为8位无符号类型,显示原来图像
如果为16位无符号或32位整型,使用像素值除以256,将值的范围从[0,255*256]映射到[0,255]
如果图像为32位浮点型,像素值乘以255.
如果窗口创建时设定支持OpenGL(WINDOW_OPENGL),则imshow还支持ogl::Buffer、ogl::Texture2D以及gpu::GpuMat作为输入。

三、void namedWindow(const string& winname, int flags=WINDOW_AUTOSIZE),用于创建窗口

1、参数介绍

name:填写窗口名称,将被用作窗口标志符

flags:窗口标志类型:

WINDOW_NORMAL,可改变窗口大小
WINDOW_AUTOSIZE(值为1),窗口大小会自动调整以适应所要显示的图像,且用户无法手动调整
WINDOW_OPENGL,窗口创建时将支持OpenGL
2、其他

可以自行手动关闭窗口并释放空间:destroyWindow()或destroyAllWindows()。但是程序退出时,所有窗口将被系统自动关闭。

四、bool imwrite(const string& filename, InputArray img,const vector&params=vector()),用于输出图像到文件

1、参数介绍

filename:填写要写入的文件名,需带上后缀,即文件类型名。

img:需要输出的图像,一般为Mat类型。

params:特定格式保存的参数编码,一般不需要填写。

对于JPEG格式,参数从0到100,表示图片质量(CV_IMWRITE_JPEG_QUALITY)
对于PNG格式,表示压缩级别(CV_IMWRITE_PNG_COMPRESSION)从0~9.较高的值意味着更小的尺寸和更长的压缩时间,默认为3.
对于PPM、PGM或PBM格式,表示一个二进制格式标识(CV_IMWRITE_PXM_BINARY),取值为0或1,默认为1.

参考链接:https://baijiahao.baidu.com/s?id=1597416478154589212&wfr=spider&for=pc

猜你喜欢

转载自blog.csdn.net/wangwenjie1997/article/details/88778155
今日推荐