频道数量 - Matlab与Opencv

时间:2014-07-14 14:02:27

标签: opencv

我正在使用图像,我在matlab中使用imfinfo的详细信息如下:

Filename: 'dog.jpg'
                  FileModDate: '25-Mar-2011 15:54:00'
                     FileSize: 8491
                       Format: 'jpg'
                FormatVersion: ''
                        Width: 194
                       Height: 206
                     BitDepth: 24
                    ColorType: 'truecolor'
              FormatSignature: ''
              NumberOfSamples: 3
                 CodingMethod: 'Huffman'
                CodingProcess: 'Sequential'
                      Comment: {}
               NewSubFileType: 0
                BitsPerSample: [8 8 8]
    PhotometricInterpretation: 'RGB'
             ImageDescription: [1x13 char]
                 StripOffsets: 154
              SamplesPerPixel: 3
                 RowsPerStrip: 206
              StripByteCounts: 119892

它显示了通道数= 3(NumberOfSamples:3)但是当我使用以下代码在opencv中找到通道数时,我得到No. of channels = 1

Mat img = imread("dog.jpg", 0);
printf("No. of Channels = %d\n", img.channels());

为什么这样?请解释一下。

1 个答案:

答案 0 :(得分:1)

正如@berak评论的那样,通过使用0作为imread()的第二个参数,您将其加载为灰度图像。尝试通过传递负值<0来加载它,以便按原样(使用Alpha通道)返回加载的图像,或者返回正值>0以返回3通道彩色图像。

像:

Mat img = imread("dog.jpg", -1); // <0 Return the loaded image as is
                            ^^