MATLAB学习之gif图片读取显示
MATLAB之gif图片读取显示
用MATLAB读取此图片,由于是动态图片,就无法用简单地imread()和imshow()两个函数进行读取显示。因此要用for循环进行逐帧读取显示。
代码如下
%gif图像的特殊处理
% imfinfo获取图片详细信息
info = imfinfo('g1.gif');
len = length(info);
for i = 1 : len
% 逐帧读取
[Ii, map] = imread('g1.gif', 'frames', i);
F(:, i) = im2frame(Ii, map);
end
implay(F)
函数解释
1、info = imfinfo(‘g1.gif’);
imfinfo()函数:获取图片的信息
调用方式
info = imfinfo(filename,fmt);
info = imfinfo(filename);
该函数把位图的相关信息(位图文件头和位图信息头信息)读入一个结构体变量中。该结构体各个成员:
Filename:文件名
FileModDate: 文件最后修改日期
FileSize: 文件总大小(字节)
Format: 文件格式('bmp’表示位图文件,更多格式请参考matlab的帮助文档
FormatVersion: ‘Version 3 (Microsoft Windows 3.x)’
Width: 图像宽度(像素)
Height: 图像高度(像素)
BitDepth: 图像灰度(24表示真彩色、8表示256色位图)
ColorType: ‘indexed’
FormatSignature: ‘BM’
NumColormapEntries: 颜色表中颜色项数
Colormap: [256x3 double]
RedMask: []
GreenMask: []
BlueMask: []
ImageDataOffset: 图像数据区的偏移量
BitmapHeaderSize: 图像文件头大小(固定为40字节)
NumPlanes: 1
CompressionType: 图像是否压缩
BitmapSize: 120000
HorzResolution: 0
VertResolution: 0
NumColorsUsed: 使用到的颜色数(对索引位图,该值表示颜色表中颜色项数,对真彩色位图,该值表示图像中实际用到的颜色数)
NumImportantColors: 重要颜色数
2、[Ii, map] = imread(‘g1.gif’, ‘frames’, i);
imread()函数:读取图片
有关内容可参考
https://blog.csdn.net/langb2014/article/details/48465795/
3、F(:, i) = im2frame(Ii, map);
im2frame():将图像转换为电影帧
1)调用方式
F = im2frame(X,map);
F = im2frame(X);
2)功能
f = im2frame(X)
如果将X指定为m乘n的整数数组,则im2frame使用关联的颜色图map,其中map是[0,1]范围内的三列值数组。 映射的每一行都是一个三元素的RGB三元组,它指定了颜色图的单一颜色的红色,绿色和蓝色分量。
如果将X指定为m×n×3真彩色图像,则map是可选的,并且无效。
f = im2frame(X)
如果X包含索引图像,则使用当前颜色图将索引图像X转换为电影帧f。
本人小白,请各位大佬善待。
下一篇: 揭秘:唐朝时期的“正一品”官职有多少个?