6

当我imread在 MATLAB 中使用并读取图像时,我如何以编程方式知道它是 RGB、灰度还是单一图像?

    I1 = imread('sample_image.jpg');

I1在进行任何转换之前,我怎么知道是什么类型?

4

1 回答 1

8

您可以imfinfo在加载图像文件之前使用它来检索有关图像文件的信息:

info = imfinfo('sample_image.jpg');
info.ColorType % e.g. 'grayscale', 'truecolor', 'indexed'
info.BitDepth % e.g. 8, 16

您还可以查看有关 imread 的帮助部分,以了解不同文件类型的输出类。问题在于确定灰度图像和索引颜色文件之间的差异 - 它们将具有相同的大小和类别。在这种情况下,您需要ColorType事先检查并在读取图像时加载颜色图:

[I, map] = imread(filename)

于 2013-09-04T11:18:45.893 回答