• openCV学习——一、图像读取、显示、输出


    一、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<int>&params=vector<int>()),用于输出图像到文件

    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.
  • 相关阅读:
    itext itextpdf 版本概要介绍
    github上的优秀项目和开发环境配置
    tfs2012 的体验地址
    Linux网卡攻略
    展现图表JavaScript库 Javascript web charts [参考地址]
    JavaEE的几个参考
    dsl boo3个例子 9
    已读的和在读的一些C++经典图书
    WinRT参考资料
    Linux性能监测工具
  • 原文地址:https://www.cnblogs.com/ivan-count/p/8893268.html
Copyright © 2020-2023  润新知