欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MATLAB学习之gif图片读取显示

程序员文章站 2022-05-20 22:09:39
...

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。

本人小白,请各位大佬善待。