Matlab中imread和rgb2gray的使用

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(不透明度)掩码。

1.读取和显示图像

A = imread('Lina.tiff');

   imread 返回512×512×3 数组 A。        

显示图像

image(A)

                      Matlab中imread和rgb2gray的使用_第1张图片

2.将索引图像转换成 RGB

读取索引图像示例文件 corn.tif 中的第一幅图像。

[X,cmap] = imread('corn.tif');

索引图像 X 是 uint8 类型的 415×312 数组。颜色图 cmap 是 double 类型的 256×3 矩阵,因此索引图像中有 256 种颜色。显示图像。

imshow(X,cmap)

                                           Matlab中imread和rgb2gray的使用_第2张图片

将索引图像转换为 RGB 图像。结果为一个 double 类型的 415×312×3 数组。

RGB = ind2rgb(X,cmap);

3.读取多页 TIFF 文件中的特定图像

例如读取示例文件 corn.tif 中的第三幅图像。

[X,map] = imread('corn.tif',3);

                                          Matlab中imread和rgb2gray的使用_第3张图片

4.读取 TIFF 图像的指定区域

读取示例图 corn.tif 像素的特定区域。

用表示要读取的区域边界的向量元胞数组指定 'PixelRegion' 参数。第一向量指定要读取的行范围,第二向量指定要读取的列范围。

A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});

imread 读取 corn.tif 中 1–2 行和 2–5 列的图像数据,并返回 2×4 数组 A

                                                       Matlab中imread和rgb2gray的使用_第4张图片

5.将索引图像转换成 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)

                      Matlab中imread和rgb2gray的使用_第5张图片

将 RGB 图像转换为灰度图像并显示图像。

B = rgb2gray(RGB);
figure
imshow(B)

                        Matlab中imread和rgb2gray的使用_第6张图片

6.将 RGB 颜色图转换为灰度颜色图

读取具有 RGB 颜色图的索引图像。然后将颜色图转换为灰度。

读取示例文件 corn.tif,该文件为具有 RGB 颜色图的索引图像。

[X,map] = imread('corn.tif');
imshow(X,map)

                                        Matlab中imread和rgb2gray的使用_第7张图片

将 RGB 颜色图转换为灰度颜色图并重新显示图像。

A = rgb2gray(map);
imshow(X,A)

                                             Matlab中imread和rgb2gray的使用_第8张图片

 

你可能感兴趣的:(Matlab)