Issue with colormap when displaying an image extract from an animated gif file

4 次查看(过去 30 天)
I extract an image from an animated gif file with the following code :
GIF_file = dir([PathName, '*velocity*.gif']);
[im, map] = imread([GIF_file.folder, '\', GIF_file.name], 'frames', num);
Then i want to display it :
figure;
imshow(im)
colormap(map)
All is good when "num" (i.e. the frame number in the gif file) is set to 1 :
1.png
Now, when "num" is set to a number > 1, here is the result (num = 7) :
1.png
I don't understand what happens...
Please, is anybody is able to help me to have same color when num > 1 than when num = 1 ?
Thanks

采纳的回答

Mikaël LE GRAND
Mikaël LE GRAND 2019-10-15
Ok, iget it myself :
It seems that when we do (num <> 1)
GIF_file = dir([PathName, '*velocity*.gif']);
[im, map] = imread([GIF_file.folder, '\', GIF_file.name], 'frames', num);
'map' is always the colormap of the first image of the animated GIF. So, it's better to do :
infos = imfinfo([GIF_file.folder, '\', GIF_file.name], 'gif');
[im, map] = imread([GIF_file.folder, '\', GIF_file.name], 'frames', num);
imshow(im)
colormap(infos(num).ColorTable)
In this way, i get the good result for each frame of the animated GIF.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Colormaps 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by