opencv中imread第二个参数的含义「建议收藏」

opencv中imread第二个参数的含义「建议收藏」文档中是这么写的:Flagsspecifyingthecolortypeofaloadedimage:CV_LOAD_IMAGE_ANYDEPTH-Ifset,return16-bit/32-bitimagewhentheinputhasthecorrespondingdepth,otherwiseconvertitto8-bit

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

文档中是这么写的:

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 one
  • CV_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中的特例

在源码中可以看到

opencv中imread第二个参数的含义「建议收藏」

opencv中imread第二个参数的含义「建议收藏」

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

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

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

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

flag=2,原深度,1通道

flag=3,  原深度,3通道

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183358.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号