主要内容

imread

从图形文件读取图像

描述

例子

一个= imread (文件名从指定的文件中读取映像文件名,从文件的内容推断文件的格式。如果文件名那么是多映像文件吗imread读取文件中的第一个图像。

一个= imread (文件名fmt另外,指定具有指示的标准文件扩展名的文件格式fmt.如果imread无法找到具有指定名称的文件文件名,它查找一个名为filename.fmt

一个= imread (___idx从多映像文件读取指定的映像。此语法只适用于GIF、PGM、PBM、PPM、CUR、ICO、TIF、SVS和HDF4文件。您必须指定文件名输入,您可以选择指定fmt

例子

一个= imread (___名称,值除前面语法中的任何输入参数外,还使用一个或多个名称-值对参数指定特定于格式的选项。

例子

一个地图) = imread (___读入索引图像文件名一个并将其关联的色度图读入地图.图像文件中的色度图值将自动缩放到该范围内[0, 1]

例子

一个地图透明度) = imread (___另外,返回图像透明度。该语法只适用于PNG、CUR和ICO文件。为PNG文件,透明度是alpha通道,如果存在一个。对于CUR和ICO文件,它是and(不透明)掩码。

例子

全部折叠

阅读示例图像。

一个= imread (“ngc6543a.jpg”);

imread返回一个650 × 600 × 3的数组,一个

显示图像。

图片(一)

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

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

[X,提出]= imread (“corn.tif”);

索引图像X415 × 312阵列是类型吗uint8.的colormap提出256 × 3的矩阵是类型吗,因此索引图像中有256种颜色。显示图像。

imshow (X,提出)

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

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

RGB = ind2rgb (X,提出);

检查RGB图像的值是否在[0,1]的范围内。

disp ([' RGB图像的范围是['num2str (min (RGB (:))),”、“num2str (max (RGB (:))),“]”。])
RGB图像的范围为[0.0078431,0.97647]。

阅读示例文件中的第三个图像,corn.tif

[X,地图]= imread (“corn.tif”3);

返回样本图像的alpha通道,peppers.png

[X,地图,α]= imread (“peppers.png”);谁α
名称大小字节类属性alpha 0x0 0 double

没有alpha通道,所以α是空的。

读取样本图像的特定像素区域,corn.tif

指定“PixelRegion”参数,使用指示要读取区域边界的向量单元格数组。第一个向量指定要读取的行范围,第二个向量指定要读取的列的范围。

一个= imread (“corn.tif”“PixelRegion”,{[1,2],[2、5]});

imread读取第1-2行和第2-5列的图像数据corn.tif并返回2 × 4数组,一个

输入参数

全部折叠

图形文件的名称,指定为字符向量或字符串标量。

这取决于你文件的位置,文件名可以变成这些形式之一。

位置

形式

当前文件夹或MATLAB上的文件夹®路径

中指定文件的名称文件名

例子:“myImage.jpg”

文件夹中的文件

如果文件不在当前文件夹或MATLAB路径上的文件夹中,则指定完整或相对路径名。

例子:“C: \ myFolder \ myImage.ext”

例子:“\ imgDir \ myImage.ext”

URL

如果文件是通过internet URL定位的,那么文件名必须包含协议类型,例如,http://

例子:“http://hostname/path_to_file/my_image.jpg”

远程位置

如果文件存储在远程位置,则文件名必须包含指定为统一资源定位符(URL)格式的文件的完整路径:

scheme_name: / /path_to_file/my_file.ext

根据地点偏远,scheme_name可以是该表中的一个值。

远程位置 scheme_name
Amazon S3™ s3
Windows Azure®Blob存储 wasbwasbs
HDFS™ hdfs

有关更多信息,请参见使用远程数据

例子:s3: / / bucketname / path_to_file / my_image.jpg '

有关每种文件类型支持的位深度、压缩方案和颜色空间的信息,请参见算法

数据类型:字符|字符串

图像格式,指定为字符向量或指示标准文件扩展名的字符串标量。调用imformats以查看支持的格式及其文件扩展名的列表。

例子:“png”

数据类型:字符|字符串

要读取的图像,指定为整数标量,或对于GIF文件,指定为整数向量。例如,如果idx是3,那么imread返回文件中的第三个图像。对于GIF文件,如果idx1:5,然后imread只返回前5帧。的idx参数只支持多图像GIF、CUR、ICO和HDF4文件。

当从同一个GIF文件读取多个帧时,指定idx作为帧的向量或使用“帧”,“所有”名称-值对的论点。由于GIF文件的结构方式,与调用相比,这些语法提供了更快的性能imread在一个循环中。

对于HDF4文件,idx对应于要读取的图像的参考编号。参考编号不一定与文件中图像的顺序对应。您可以使用imfinfo根据参考编号匹配图像顺序。

例子:3.

数据类型:

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“指数”,5读取TIFF文件的第五个图像。

GIF文件

全部折叠

要读取的帧,指定为逗号分隔的一对“帧”一个正整数,一个整数的向量,或者“所有”.例如,如果您指定值3,imread读取文件中的第三帧。如果您指定“所有”,然后imread读取所有帧并按它们在文件中出现的顺序返回它们。

例子:“帧”,5

JPEG 2000个文件

全部折叠

子图像要读取,指定为逗号分隔的一对“PixelRegion”和窗体的单元格数组{行,关口}.的Input指定要读取的行范围。的关口Input指定要读取的列的范围。这两个关口必须是包含基于1的索引的双元素向量。例如,PixelRegion, {[1 - 2], [3 - 4]}读取图像数据中以第1行和第2行以及第3列和第4列为界的子图像。如果“ReductionLevel”Value大于0,则关口是子图像的坐标。

例子:PixelRegion, {[100], [500]}

图像分辨率的缩减,指定为逗号分隔的对,由“ReductionLevel”和一个非负整数。为减少水平l时,图像分辨率降低了2^l.的指定的分解级别的总数限制了还原级别“WaveletDecompositionLevels”的输出中imfinfo函数。

例子:“ReductionLevel”,5

数据类型:|

与MATLAB 7.9 (R2009b)及更早版本的兼容性,指定为逗号分隔对,由“V79Compatible”,要么真正的.如果您指定真正的,则返回的灰度或RGB图像与以前版本一致imread(MATLAB 7.9 (R2009b)和更早的版本)。

例子:“V79Compatible”,真的

数据类型:逻辑

PNG文件

全部折叠

背景颜色,指定为“没有”、整数或整数的三元素向量。如果写成BackgroundColor“没有”,然后imread不执行任何合成。否则,imread将透明像素与背景颜色混合。

  • 如果输入图像被索引,则的值写成BackgroundColor必须是范围内的整数吗(1, P),在那里P是色谱仪的长度。

  • 如果输入图像是灰度的,则的值写成BackgroundColor必须是范围内的整数吗[0, 1]

  • 如果输入图像为RGB,则的值写成BackgroundColor必须是具有范围内值的三元素向量[0, 1]

的默认值。写成BackgroundColor取决于是否存在透明度输出参数和图像类型:

  • 如你要求透明度参数,然后是的默认值写成BackgroundColor“没有”

  • 如果您没有请求透明度输出和PNG文件包含一个背景色块,则该颜色为的默认值写成BackgroundColor

  • 如果您没有请求透明度输出且文件不包含背景色块,则为默认值写成BackgroundColor1对于索引的图像,0对于灰度图像,和(0 0 0)用于真彩色(RGB)图像。

TIFF文件

全部折叠

要读取的图像,指定为逗号分隔的一对“指数”一个正整数。例如,如果的值指数是3,那么imread读取文件中的第三个图像。

数据类型:|

关于图像的信息,指定为逗号分隔的对,由“信息”和返回的结构数组imfinfo函数。使用信息名称-值对参数来提供帮助imread更快地在多图像TIFF文件中定位图像。

数据类型:结构体

区域边界,指定为逗号分隔的对,由“PixelRegion”和窗体的单元格数组{行,关口}.的Input指定要读取的行范围。的关口Input指定要读取的列的范围。关口必须是基于1的索引的双元素或三元素向量。双元素向量指定要读取的第一行和最后一行或列。例如,PixelRegion, {[1 - 2], [3 - 4]}读取图像数据中以第1行和第2行以及第3列和第4列为界的区域。

三元素向量必须是这样的形式(开始增量停止),在那里开始是要读的第一行或第一列,增量是增量值,和停止要读取的最后一行或最后一列。这个语法允许图像下采样。例如,'PixelRegion',{[1 2 10],[4 3 12]}读取由第1行和第10行以及第4列和第12列限定的区域,并从垂直方向上的每2个像素和水平方向上的每3个像素采样数据。

例子:PixelRegion, {[100], [500]}

数据类型:细胞

输出参数

全部折叠

图像数据,作为数组返回。

  • 如果文件包含灰度图像,则a是——- - - - - -n数组中。

  • 如果文件包含索引图像,则A是——- - - - - -n中索引处的颜色对应的索引值数组地图

  • 如果文件包含一个真彩色图像,那么a是一个——- - - - - -n3数组。

  • 如果文件是包含使用CMYK颜色空间的彩色图像的TIFF文件,则a是——- - - - - -n4数组。

的类一个取决于图像格式和图像数据的位深度。有关更多信息,请参见算法

中的索引图像数据相关联的色度图一个,作为类的-by-3矩阵

透明度信息,作为矩阵返回。为PNG文件,透明度是alpha通道,如果存在。如果没有alpha通道,或者指定“写成BackgroundColor”那么,名称-值对参数透明度是空的。对于CUR和ICO文件,透明度是AND掩码。对于游标文件,此掩码有时包含惟一有用的数据。

更多关于

全部折叠

位深度

位深是用来表示每个图像像素的位的数量。

位深度的计算方法是将每个样本的比特数与每个像素的样本数相乘。因此,对于每个颜色组件(或样本)使用8位,每个像素使用3个样本的格式,位深度为24。有时与位深度相关的样本大小可能是模糊的。例如,48位位深度是表示6个8位样本、4个12位样本还是3个16位样本?看到算法对于样本量信息避免这种歧义。

算法

全部折叠

对于大多数图像文件格式,imread每个颜色平面使用8位或更少位来存储图像像素。这个表列出了返回的图像数组的类,一个,表示文件格式使用的位深度。

文件中的位深度

返回的数组类imread

每像素1位

逻辑

每个颜色平面2到8位

uint8

每像素9到16位

uint16骨形态发生蛋白JPEGPNG,TIFF

对于16位BMP封装格式(5-6-5),MATLAB返回uint8

以下部分提供了有关对特定格式支持的信息,按格式名称的字母顺序列出。

BMP -窗户位图

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 没有压缩 RLE压缩 输出类 笔记
1位 - - - - - - 逻辑
4位 uint8
8位 uint8
16位 - - - - - - uint8 1样品/像素
24位 - - - - - - uint8 3样品/像素
32位 - - - - - - uint8 3样品/像素
(1字节填充)

CUR -光标文件

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 没有压缩 压缩 输出类
1位 - - - - - - 逻辑
4位 - - - - - - uint8
8位 - - - - - - uint8

请注意

默认情况下,微软®窗户®游标是32 × 32像素。由于MATLAB指针必须是16乘16的,您可能需要缩放您的图像。您可以使用imresize命令功能。

GIF -图形交换格式

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 没有压缩 压缩 输出类
1位 - - - - - - 逻辑
2位到8位 - - - - - - uint8

分级数据格式

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 光栅图像与色彩图 没有色彩图的光栅图像 输出类 笔记
8位 uint8
24位 - - - - - - uint8 3样品/像素

ICO -图标文件

JPEG -联合摄影专家组

imread读取任何基线JPEG图像,以及带有一些常用扩展的JPEG图像。有关jpeg2000文件支持的信息,请参见JPEG 2000

每个样本支持位 有损压缩 无损压缩 输出类 笔记
8位 uint8 灰度或RGB
12位 uint16 灰度或RGB
16位 - - - - - - uint16 灰度

jpeg2000 -联合摄影专家组2000

有关JPEG文件的信息,请参见JPEG

请注意

不支持索引JPEG 2000图像。对于JP2/JPX文件,只支持与JP2兼容的颜色空间。默认情况下,所有图像通道都按照它们在文件中存储的顺序返回。

每个样本支持位

有损压缩 无损压缩 输出类 笔记
1位 逻辑 灰度只
2位到8位 uint8int8 灰度
或RGB
9位到16位 uint16int16 灰度
或RGB

PBM -便携式位图

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 原始二进制 ASCII编码(平原) 输出类
1位 逻辑

图形文件,窗户画笔

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 输出类 笔记
1位 逻辑 灰度只
8位 uint8 灰度或索引
24位 uint8 RGB
三个8位/像素样本

PGM -便携式灰度图

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 原始二进制 ASCII编码(平原) 输出类 笔记
8位 - - - - - - uint8
16位 - - - - - - uint16
任意的 - - - - - - 出的8位:uint8
9-bit 16位:uint16
值是按比例缩小的

PNG -便携式网络图形

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 输出类 笔记
1位 逻辑 灰度
2位 uint8 灰度
4位 uint8 灰度
8位 uint8 灰度或索引
16位 uint16 灰度或索引
24位 uint8 RGB
三个8位/像素样本。
48位 uint16 RGB
三个16位/像素样本。

PPM -便携式像素图

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 原始二进制 ASCII编码(平原) 输出类
最多16位 - - - - - - uint8
任意的 - - - - - -

RAS -太阳光栅

该表列出了支持的位深度和输出图像数据数组的数据类型。

支持位深 输出类 笔记
1位 逻辑 位图
8位 uint8 索引
24位 uint8 RGB
三个8位/像素样本
32位 uint8 RGB与α
四个8位/像素样本

Aperio SVS - AperioScanScope虚拟幻灯片

基于tiff的图像文件格式。imread支持读取未压缩和压缩图像,包括JPEG2000压缩图像。有关更多信息,请参见TIFF -标记图像文件格式

TIFF -标记图像文件格式

imread读取TIFF规范或LibTIFF支持的大多数图像。的imread函数支持以下TIFF功能:

  • 每像素任意数量的样本

  • CCITT组3和4 FAX, Packbits, JPEG, LZW, Deflate, ThunderScan压缩和未压缩图像

  • 逻辑,灰度,索引颜色,真彩色和高光谱图像

  • RGB, CMYK, CIELAB, ICCLAB颜色空间。如果彩色图像使用CMYK颜色空间,一个是一个——- - - - - -n4数组。要确定使用的颜色空间,请使用imfinfo的值来获取有关图形文件的信息并查看PhotometricInterpretation字段。如果文件包含CIELAB颜色数据,imread将其转换为ICCLAB,然后将其引入MATLAB工作区。这种转换是必要的,因为8位或16位TIFF cielab编码的值使用有符号和无符号数据类型的混合,而这些数据类型不能表示为单个MATLAB数组。

  • 数据组织成贴图或扫描线

imread读取和转换TIFF图像如下:

  • YCbCr图像转换为RGB色彩空间。

  • 所有灰度图像都被视为黑色=0,白色=最大值。

  • 1位图像作为类返回逻辑

  • 16位浮点图像作为类返回

  • CIELab图像转换为ICCLab色彩空间。

XWD - X窗口转储

该表列出了XWD文件支持的位深度、压缩和输出类。

支持位深 ZPixmaps XYBitmaps XYPixmaps 输出类
1位 - - - - - - 逻辑
8位 - - - - - - - - - - - - uint8

扩展功能

版本历史

之前介绍过的R2006a

全部展开

另请参阅

||||||(图像处理工具箱)

主题

Baidu
map