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

6 views (last 30 days)
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

Accepted Answer

Mikaël LE GRAND
Mikaël LE GRAND on 15 Oct 2019
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.

More Answers (0)

Categories

Find more on Colormaps in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!