MATLAB imread()函数:读取图片(附带实例)
在 MATLAB 中,imread() 函数用来读入各种图像文件,它的调用格式及说明如下表所示:
对于图像数据 A,以数组的形式返回,具体形式如下:
【实例】显示搜索路径下的孔雀图片。MATLAB 程序如下:

图 1 显示孔雀图片
调用格式 | 说明 |
---|---|
A=imread(filename) | 从 filename 指定的文件中读取图像,如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像 |
A=imread(filename, fmt) | 其中参数 fmt 用来指定图像的格式,图像格式可以与文件名写在一起,默认的文件目录为当前工作目录 |
A=imread(…, idx) | 读取多帧图像文件中的一帧,idx 为帧号。仅适用于 GIF、PGM、PBM、PPM、CUR、ICO、TIF 和 HDF4 文件 |
A=imread(…, Name,Value) | 使用一个或多个名称-值对参数以及前面语法中的任何输入参数来指定特定选项,名称-值对组参数如表 8-5 所示 |
[A, map]=imread(…) | 将 filename 中的索引图像读入 A,并将其关联的颜色图读入 map。图像文件中的颜色图值会自动重新调整到范围 [0,1] 中 |
[A, map, alpha]=imread(…) | 在[A, map]=imread(…)的基础上还返回图像透明度,仅适用于 PNG、CUR 和 ICO 文件。对于 PNG 文件,返回 alpha 通道(如果存在) |
对于图像数据 A,以数组的形式返回,具体形式如下:
- 如果文件包含灰度图像,则 A 为 m×n 数组。
- 如果文件包含索引图像,则 A 为 m×n 数组,其中的索引值对应于 map 中该索引处的颜色。
- 如果文件包含真彩色图像,则 A 为 m×n×3 数组。
- 如果文件是一个包含使用 CMYK 颜色空间的彩色图像的 TIFF 文件,则 A 为 m×n×4 数组。
属性名 | 说明 | 参数值 |
---|---|---|
Frames | 要读取的帧(GIF 文件) | 一个正整数、整数向量或 all。如果指定值 3,将读取文件中的第三个帧。指定 all,则读取所有帧并按其在文件中显示的顺序返回这些帧 |
PixelRegion | 要读取的子图像(JPEG2000 文件) | 指定为包含 PixelRegion 和 {rows,cols} 形式的元胞数组的逗号分隔对组 |
ReductionLevel | 降低图像分辨率(JPEG2000 文件) | 0(默认)和非负整数 |
BackgroundColor | 背景色(PNG 文件) | none、整数或三元素整数向量。如果输入图像为索引图像,BackgroundColor 的值必须为 [1,P] 范围内的一个整数,其中 P 是颜色图长度;如果输入图像为灰度,则 BackgroundColor 的值必须为 [0,1] 范围内的整数;如果输入图像为 RGB,则 BackgroundColor 的值必须为三元素向量,其中的值介于 [0,1] 范围内 |
Index | 要读取的图像(TIFF 文件) | 包含 Index 和正整数的逗号分隔对组 |
Info | 图像的相关信息(TIFF 文件) | 包含 Info 和 imfinfo 函数返回的结构体数组的逗号分隔对组 |
PixelRegion | 区域边界(TIFF 文件) | {rows,cols} 形式的元胞数组 |
【实例】显示搜索路径下的孔雀图片。MATLAB 程序如下:
>> close all % 关闭当前已打开的文件 >> clear % 清除工作区的变量 >> A=imread('peacock.jpg'); % 读取当前路径下的图片peacock.jpg >> imshow(A) % 显示图片运行结果如下图所示:

图 1 显示孔雀图片