【问题标题】:How to determine the number of input image channels?如何确定输入图像通道的数量?
【发布时间】:2014-07-23 05:43:50
【问题描述】:

要读取图像文件,我必须使用其中一个

Mat img = imread(file,CV_LOAD_IMAGE_COLOR);

Mat img = imread(file,CV_LOAD_IMAGE_GRAYSCALE);

这意味着我必须提前知道文件是包含彩色图像还是单色图像。有没有办法提前知道通道数,以便我可以根据通道数应用读取的图像?

【问题讨论】:

    标签: opencv


    【解决方案1】:

    根据imread documentation,你应该使用<0 Return the loaded image as is (with alpha channel)

    highui_c.h 中有这样的定义:

    CV_LOAD_IMAGE_UNCHANGED  =-1,
    

    奇怪的是 CV_LOAD_IMAGE_UNCHANGED 在imread documentation 中没有提到,但在one of the OpenCV tutorials 中使用。 这会做你想做的事:

    Mat img = imread(file, CV_LOAD_IMAGE_UNCHANGED);
    

    【讨论】:

    • 先生。 B,谢谢你的回答。有用。我发现一些黑白图像返回 3,img.channel()。那种图像可能有缺陷,没有正确地从彩色转换为单色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多