Matlab中imread和rgb2gray的使用

目录

语法

说明

示例

读取和显示图像

将索引图像转换成 RGB

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

读取 TIFF 图像的指定区域

将索引图像转换成 RGB

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


        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)

        如图所示:                                             

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值