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

2 visualizaciones (últimos 30 días)
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

Respuesta aceptada

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

Más respuestas (0)

Categorías

Más información sobre Animation en Help Center y File Exchange.

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by