目录
imread函数的功能是从图形文件读取图像。
语法
A = imread(filename)
A = imread(filename,fmt)
A = imread(___,idx)
A = imread(___,Name,Value)
[A,map] = imread(___)
[A,map,transparency] = imread(___)
说明
A = imread(filename) 从 filename 指定的文件读取图像,并从文件内容推断出其格式。如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像。
A = imread(filename,fmt) 另外还指定具有 fmt 指示的标准文件扩展名的文件的格式。如果 imread 找不到具有 filename 指定的名称的文件,则会查找名为 filename.fmt 的文件。
A = imread(___,idx) 从多图像文件读取指定的图像。此语法仅适用于 GIF、PGM、PBM、PPM、CUR、ICO、TIF 和 HDF4 文件。您必须指定 filename 输入,也可以指定 fmt。
A = imread(___,Name,Value) 使用一个或多个名称-值对组参数以及先前语法中的任何输入参数来指定格式特定的选项。
[A,map] = imread(___) 将 filename 中的索引图像读入 A,并将其关联的颜色图读入 map。图像文件中的颜色图值会自动重新调整到范围 [0,1] 中。
[A,map,transparency] = imread(___) 另外还返回图像透明度。此语法仅适用于 PNG、CUR 和 ICO 文件。对于 PNG 文件,如果存在 alpha 通道,transparency 会返回该 alpha 通道。对于 CUR 和 ICO 文件,它为 AND(不透明度)掩码。
示例
读取和显示图像
A = imread('Lina.tiff');
imread 返回512×512×3 数组 A。
显示图像
image(A)
如图所示:
将索引图像转换成 RGB
读取索引图像示例文件 corn.tif 中的第一幅图像。
[X,cmap] = imread('corn.tif');
索引图像 X 是 uint8 类型的 415×312 数组。颜色图 cmap 是 double 类型的 256×3 矩阵,因此索引图像中有 256 种颜色。显示图像。
imshow(X,cmap)
如图所示:
将索引图像转换为 RGB 图像。结果为一个 double 类型的 415×312×3 数组。
RGB = ind2rgb(X,cmap);
读取多页 TIFF 文件中的特定图像
例如读取示例文件 corn.tif 中的第三幅图像。
[X,map] = imread('corn.tif',3);
如图所示:
读取 TIFF 图像的指定区域
读取示例图 corn.tif 像素的特定区域。
用表示要读取的区域边界的向量元胞数组指定 'PixelRegion' 参数。第一向量指定要读取的行范围,第二向量指定要读取的列范围。
A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});
imread 读取 corn.tif 中 1–2 行和 2–5 列的图像数据,并返回 2×4 数组 A。
如图所示:
将索引图像转换成 RGB
在计算机中看到的大多数彩色图片是基于RGB三通道的图片,红绿蓝三种颜色,每一种取值均为[0~255]。通过255*255*255,可以构成庞大的颜色群。而灰度图像只有256个灰度级。通过以下公式可以将RGB转换成灰度
GRAY=0.2989*R + 0.5870*G+ 0.1140*B
在Matlab中为我们提供了rgb2gray函数,将 RGB 图像或颜色图转换为灰度图,用法为:
I = rgb2gray(RGB)
newmap = rgb2gray(map)
I = rgb2gray(RGB) 将真彩色图像 RGB 转换为灰度图像 I。rgb2gray 函数通过消除色调和饱和度信息,同时保留亮度,来将 RGB 图像转换为灰度图。如果已安装 Parallel Computing Toolbox™,则 rgb2gray 可以在 GPU 上执行此转换。
newmap = rgb2gray(map) 返回等同于 map 的灰度颜色图。
读取并显示 RGB 图像,然后将其转换为灰度图。
读取示例文件 peppers.png 并显示 RGB 图像。
RGB = imread('peppers.png');
imshow(RGB)
如图所示:
将 RGB 图像转换为灰度图像并显示图像。
B = rgb2gray(RGB);
figure
imshow(B)
如图所示:
将 RGB 颜色图转换为灰度颜色图
读取具有 RGB 颜色图的索引图像。然后将颜色图转换为灰度。
读取示例文件 corn.tif,该文件为具有 RGB 颜色图的索引图像。
[X,map] = imread('corn.tif');
imshow(X,map)
如图所示:
将 RGB 颜色图转换为灰度颜色图并重新显示图像。
A = rgb2gray(map);
imshow(X,A)
如图所示: