🔗 运行环境:Matlab
🚩 撰写作者:左手の明天
🥇 精选专栏:《python》
🔥 推荐专栏:《算法研究》
#### 防伪水印——左手の明天 ####
💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗
💗今天更新系列【matlab函数分析】——imread函数💗
📆 最近更新:2024 年 06 月 30 日,左手の明天的第 340 篇原创博客
📚 更新于专栏:matlab
#### 防伪水印——左手の明天 ####
1、函数语法说明
1.1 语法
A = imread(filename):从filename指定的文件读取图像,并从文件内容推断出其格式。如果filename为多图像文件,则imread读取该文件中的第一个图像。A = imread(filename,fmt):另外还指定具有fmt指示的标准文件扩展名的文件的格式。如果imread找不到具有filename指定的名称的文件,则会查找名为filename.fmt的文件。[A,map] = imread(___):将filename中的索引图像读入A,并将其关联的颜色图读入map。图像文件中的颜色图值会自动重新调整到范围[0,1]中。[A,map,transparency] = imread(___):另外还返回图像透明度。此语法仅适用于 PNG、CUR 和 ICO 文件。对于 PNG 文件,如果存在 alpha 通道,transparency会返回该 alpha 通道。对于 CUR 和 ICO 文件,它为 AND(不透明度)掩码。
1.2 输入参数
filename — 图形文件名
图形文件的名称,指定为字符向量或字符串标量。
根据文件的位置,filename 可以采用下列形式之一。
| 位置 | 形式 |
|---|---|
| 当前文件夹或 MATLAB路径上的文件夹 | 指定 示例: |
| 文件夹中的文件 | 如果该文件不在当前文件夹或 MATLAB 路径下的文件夹中,则指定完整或相对路径名。 示例: 示例: |
| URL | 如果文件是通过 Internet URL 定位的,则 示例: |
fmt — 图像格式
图像格式,指定为指示标准文件扩展名的字符向量或字符串标量。调用 imformats 可查看支持的格式及其文件扩展名列表。
示例: 'png'
1.3 输出参量
A — 图像数据
图像数据,以数组的形式返回。
-
如果文件包含灰度图像,则 A 为
m×n数组。 -
如果文件包含索引图像,则 A 为
m×n数组,其中的索引值对应于map中该索引处的颜色。 -
如果文件包含真彩色图像,则 A 为
m×n×3 数组。 -
如果文件是一个包含使用 CMYK 颜色空间的彩色图像的 TIFF 文件,则 A 为
m×n×4 数组。
map — 颜色图
与 A 中的索引图像数据关联的颜色图,以 m×3 的 double 类矩阵形式返回。
transparency — 透明度信息
以矩阵形式返回的透明度信息。对于 PNG 文件,transparency 为 alpha 通道(若存在)。如果不存在 alpha 通道,或者如果指定了 'BackgroundColor' 名称-值对组参量,则 transparency 为空。对于 CUR 和 ICO 文件,transparency 是 AND 掩码。对于光标文件,该掩码有时仅包含有用的数据。
2、示例
2.1 读取和显示图像
读取示例图。
A = imread('ngc6543a.jpg');
imread 返回 650×600×3 数组 A。
显示图像。
image(A)

2.1 将索引图像转换成 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);
检查 RGB 图像的值是否在 [0, 1] 范围内。
disp(['Range of RGB image is [',num2str(min(RGB(:))),', ',num2str(max(RGB(:))),'].'])
Range of RGB image is [0.0078431, 0.97647].
2.2 读取多页 TIFF 文件中的特定图像
读取示例文件 corn.tif 中的第三幅图像。
[X,map] = imread('corn.tif',3);
2.3 返回 PNG 图像的 Alpha 通道
返回示例图 peppers.png 的 Alpha 通道。
[X,map,alpha] = imread('peppers.png');
whos alpha
Name Size Bytes Class Attributesalpha 0x0 0 double
没有提供 Alpha 通道,因此 alpha 为空。
2.4 读取 TIFF 图像的指定区域
读取示例图 corn.tif 像素的特定区域。
用表示要读取的区域边界的向量元胞数组指定 'PixelRegion' 参数。第一向量指定要读取的行范围,第二向量指定要读取的列范围。
A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});
imread 读取 corn.tif 中 1–2 行和 2–5 列的图像数据,并返回 2×4 数组 A。
tips: 所读取的文件名应该放在当前的文件路径下,不然送你一片红
