zoukankan      html  css  js  c++  java
  • opencv中imread第二个参数的意义

    文档中是这么写的:

    Flags specifying the color type of a loaded image:
    CV_LOAD_IMAGE_ANYDEPTH - If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.CV_LOAD_IMAGE_COLOR - If set, always convert image to the color oneCV_LOAD_IMAGE_GRAYSCALE - If set, always convert image to the grayscale one

    0 Return a 3-channel color image.

    Note
    In the current implementation the alpha channel, if any, is stripped from the output image. Use negative value if you need the alpha channel.

    =0 Return a grayscale image.<0 Return the loaded image as is (with alpha channel).
    大致翻译一下:

    Flags指定了所读取图片的颜色类型

    CV_LOAD_IMAGE_ANYDEPTH返回图像的深度不变。

    CV_LOAD_IMAGE_COLOR总是返回一个彩色图。

    CV_LOAD_IMAGE_GRAYSCALE总是返回一个灰度图。

    0返回3通道彩色图

    注意:alpha 通道将被忽略,如果需要alpha 通道,请使用负值

    =0返回灰度图

    <0返回原图(带alpha 通道)

    我觉得这里最大的问题就是一会说深度,一会说通道数,两个问题都没有说明白。

    实测,当读取一副黑白图时,如果使用Flags=2(CV_LOAD_IMAGE_ANYDEPTH),此时Flags>0,得到的仍是黑白图而不是彩色图。其它的值,如1,3,4等均是彩色。

    所以我觉得第一句话应该改为  CV_LOAD_IMAGE_ANYDEPTH返回图像原有的深度,但是通道数变为1,这是Flags>0中的特例

    在源码中可以看到

    自己测了一下,然后总结如下:

    flag=-1时,8位深度,原通道

    flag=0,8位深度,1通道

    flag=1,   8位深度  ,3通道

    flag=2,原深度,1通道

    flag=3,  原深度,3通道

    flag=4,8位深度 ,3通道


    作者:阿翔ax
    来源:CSDN
    原文:https://blog.csdn.net/z914022466/article/details/52709981?utm_source=copy
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    对比Microsoft RemoteFX与VMware PCoIP
    SATA port selector and port muliplier 产品
    从并行 SCSI 到串行 SCSI
    转:快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)
    全面分析:SATA2硬盘的发展和优缺点
    axel vpc
    转:网络带宽测量工具之iperf
    转:使用测试工具iPerf监控无线网络性能
    远程维护Helpdesk应用VNC
    QOS定义
  • 原文地址:https://www.cnblogs.com/ymd12103410/p/9768429.html
Copyright © 2011-2022 走看看