Как узнать тип изображения
когда я использую imread
в MATLAB и читать изображение, как бы я знал, если это RGB, серый масштаб или один программно?
I1 = imread('sample_image.jpg');
как я могу знать, какого типа I1
перед любым преобразованием?
1 ответов
можно использовать 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)