当我在MATLAB中使用imread
并读取图像时,如何以编程方式知道它是RGB,灰度还是单个?
I1 = imread('sample_image.jpg');
如何在转换之前知道I1
的类型是什么?
答案 0 :(得分: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)