Function IND2GRAY expected input number 2, MAP, to be a valid colormap.

Iam trying to read and convert color images to gray,
The code is :
[X,MAP]=imread(im);
x=ind2gray(X,MAP);
the images are BMP and they were jpg images and i convert them to BMP using online converter.
any help please ?

2 个评论

what shows up with imfinfo(im)
I suspect that it is not an indexed image , that the colormap is empty .
imfinfo(im) is
Error using imfinfo (line 100)
Unable to open file "face6.bmp" for reading.
i attched the face6 file !!!

请先登录,再进行评论。

 采纳的回答

Maybe " i convert them to BMP using online converter" was a bad idea. Why don't you use the JPG files directly? Matlab can access then efficiently and is able to convert them the BMP also. Then the indirection over an "online converter" seems to be unnecessary.
"Unable to open file "face6.bmp" for reading." might mean, that you are in the wrong directoy or that the BMP file is corrupted. The image file can be opened in the browser without problems, so I assume that you can fix the input of imfinfo and provide the output.
Alternatively you can check the contents of Map by your own. Obviously it is not the required color map, so maybe it is empty, because X is an RGB image? In this case use rgb2gray instead.
[X,MAP]=imread(im);
if isempty(MAP)
gray = rgb2gray(X);
else
gray = ind2gray(X,MAP);
end

1 个评论

>> imfinfo('face6.bmp')
ans =
struct with fields:
Filename: '/Users/roberson/MATLAB/4/430/430201/face6.bmp'
FileModDate: '16-Nov-2018 13:33:33'
FileSize: 108138
Format: 'bmp'
FormatVersion: 'Version 5 (Microsoft Windows 2000)'
Width: 180
Height: 200
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: 'BM'
NumColormapEntries: 0
Colormap: []
Notice "truecolor" and notice that Colormap is empty. It is not an indexed image.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Color and Styling 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by