问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Matlab函数分析:imread从图形文件读取图像

创作时间:
作者:
@小白创作中心

Matlab函数分析:imread从图形文件读取图像

引用
CSDN
1.
https://m.blog.csdn.net/ywsydwsbn/article/details/140082035

运行环境: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路径上的文件夹:指定filename中文件的名称。示例:'myImage.jpg'

  • 文件夹中的文件:如果该文件不在当前文件夹或MATLAB路径下的文件夹中,则指定完整或相对路径名。示例:'C:\myFolder\myImage.ext'示例:'\imgDir\myImage.ext'

  • URL:如果文件是通过Internet URL定位的,则filename必须包含协议类型,例如http://。示例:'http://hostname/path_to_file/my_image.jpg'

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×3double类矩阵形式返回。

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 Attributes
 alpha 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:所读取的文件名应该放在当前的文件路径下,不然送你一片红

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号