从图形文件中读取图像

描述

例子

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

一个= imread(文件名,fmt)另外指定文件与由所指示的标准文件扩展格式fmt。如果找不到与指定名称的文件文件名,它会寻找一个文件名为filename.fmt

一个= imread(___,IDX)读取来自多图像文件指定的图像或图像。此语法仅适用于GIF,PGM,PBM,PPM,CUR,ICO,TIF,和HDF4文件。您必须指定一个文件名输入,您可以选择指定fmt

例子

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

例子

(一个,地图] = imread(___)读取该索引图像文件名一个并读取其相关的颜色映射成地图。图像文件中的Colormap值会自动调整到范围中[0,1]

例子

(一个,地图,透明度] = imread(___)另外返回图像的透明度。此语法仅适用于PNG,CUR,和ICO文件。对于PNG文件,透明度是α通道,如果存在的话。对于CUR和ICO文件,它是AND(不透明)面膜。

例子

全部折叠

读取一个样本图像。

A = imread('ngc6543a.jpg');

返回一个650×600×3阵列,一个

显示图像。

图像(A)

阅读第一个图像中的采样索引图像文件中,玉米.tif

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

该索引图像X415×312的数组是类型吗UINT8. 彩色地图CMAP是类型的256×3矩阵因此有256种颜色的索引图像英寸显示图像。

imshow (X,提出)

索引图像转换为RGB图像。其结果是一个415-通过-312×3阵列型的

RGB=ind2rgb(X,cmap);

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

DISP(['RGB图像的范围是[',num2str(分钟(RGB(:))),''num2str (max (RGB (:))),'].'])
RGB图像的范围是[0.0078431,0.97647]。

阅读第三图像中的示例文件,玉米.tif

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

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

[X,map,alpha]=读取('peppers.png');谁α
名称大小字节类属性的α为0x0 0双

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

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

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

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

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

输入参数

全部折叠

图形文件,指定为文字载体或串标名称。

根据您的文件的位置,文件名可以采取其中一种形式。

位置

形式

在MATLAB当前文件夹或文件夹®路径

在中指定文件名文件名

例:'myImage.jpg'

文件夹中的文件

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

例:'C:\ myFolder\myImage.ext'

例:'\ imgDir \ myImage.ext'

统一资源定位地址

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

例:'HTTP://hostname/path_to_file/my_image.jpg'

远程位置

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

采用scheme_name://文件路径/my_file.ext

根据您的位置偏远,采用scheme_name可以是此表中的值之一。

远程位置 采用scheme_name
亚马逊S3™ S3
Windows Azure®Blob存储 wasb,wasbs
HDFS™ HDFS

欲了解更多信息,请参阅与远程数据,

例:'S3://bucketname/path_to_file/my_image.jpg'

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

数据类型:烧焦|

图像格式,指定为表示标准文件扩展名的字符向量或标量的字符串。呼叫imformats查看受支持格式及其文件扩展名的列表万博1manbetx。

例:'巴布亚新几内亚'

数据类型:烧焦|

要读取的图像,指定为整数标量,对于GIF文件,指定为整数向量。例如,如果IDX是3,那么返回文件中的第三图像。对于GIF文件,如果IDX1:5,然后只返回前五个帧。的IDX参数仅支持多图像GIF、万博1manbetxCUR、ICO和HDF4文件。

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

对于HDF4文件,IDX对应要读取的图像的参考编号。参考编号不一定与文件中图像的顺序一致。您可以使用伊姆芬福将图像顺序与参考号匹配。

例:3.

数据类型:

名称-值对参数

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是相应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数,如下所示名1,值1,...,NameN,值N

例:'索引',5读取TIFF文件的第五图像。

GIF文件

全部折叠

帧的读取,指定为逗号分隔的一对组成的“帧”和一个正整数,整数的向量,或“全部”。例如,如果你指定值3,读取文件中的第三帧。如果您指定“全部”,然后读取它们出现在文件中的顺序所有帧和回报他们。

例:'帧',5

JPEG 2000文件

全部折叠

子图像读取,指定为逗号分隔的一对组成的'PixelRegion'和形式的单元阵列{行,COLS}。的输入指定的行的范围来阅读。的COLSinput指定要读取的列的范围。都COLS必须是包含基于1的索引的两元素向量。例如,'PixelRegion',{[1 2],[3 4]}读取由图像数据中的行1和2以及列3和列4限定的子图像。如果'ReductionLevel'值大于0,则COLS是子图像的坐标。

例:'PixelRegion',{[1100],[4 500]}

图像分辨率的降低,指定为逗号分隔对,由'ReductionLevel'一个非负整数。为减少水平l,图像分辨率降低了2倍^l. 还原级别受'WaveletDecompositionLevels'输出中的字段伊姆芬福函数。

例:“ReductionLevel”, 5

数据类型:|

用MATLAB 7.9(R2009b中)和更早的兼容性,指定为逗号分隔的一对组成的'V79Compatible',要么真的。如果您指定真的,则返回的灰度或RGB图像与之前的版本保持一致(MATLAB 7.9(R2009b)及更早版本)。

例:'V79兼容',真

数据类型:逻辑

PNG文件

全部折叠

背景颜色,指定为“没有”,一个整数,或一个三元素的整数向量。如果背景颜色“没有”,然后不执行任何合成。否则,共混物用背景色透明的像素。

  • 如果输入图像是索引,则该值背景颜色必须是范围内的整数[1,页],其中P是颜色表的长度。

  • 如果输入图像是灰度级,则该值背景颜色必须是范围内的整数[0,1]

  • 如果输入图像是RGB,则值为背景颜色必须与在范围内的值的三元素向量[0,1]

的默认值背景颜色取决于是否存在透明度输出参数和图像类型:

  • 如你要求透明度输出参数,则默认值为背景颜色“没有”

  • 如果你不要求透明度输出和PNG文件包含一个背景颜色块,然后颜色是默认值背景颜色

  • 如果你不要求透明度输出和文件不包含背景颜色块,则默认值为背景颜色1对于索引图像,0对于灰度图像,和[0 0 0]对于真彩色(RGB)图像。

TIFF文件

全部折叠

图像读取,指定为逗号分隔的一对组成的'索引'一个正整数。例如,如果的值指数是3,那么读取文件中的第三个图像。

数据类型:|

有关图像的信息,指定为逗号分隔对,由'信息'以及伊姆芬福函数。使用信息要帮助的名称-值对参数在多图像TIFF文件中更快地定位图像。

数据类型:结构体

区域边界,指定为逗号分隔对,由'PixelRegion'和形式的单元阵列{行,COLS}。的输入指定的行的范围来阅读。的COLSinput指定要读取的列的范围。COLS必须是基于1的索引的两个元素或三个元素向量。双元素向量指定要读取的第一行和最后一行或最后一列。例如,'PixelRegion',{[1 2],[3 4]}读取由图像数据中的行1和2以及列3和列4限定的区域。

的三元素向量必须是形式[开始增量停止],其中开始在第一行或列来读取,增量是一个增量值,并且停止是最后的行或列的阅读。这句法允许图像采样。例如,'像素区域',{[1 2 10],[4 3 12]}读出由行1和10以及图4和12列,和样品的数据从每2个像素在垂直方向上,且在水平方向上每3个像素包围的区域。

例:'PixelRegion',{[1100],[4 500]}

数据类型:细胞

输出参数

全部折叠

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

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

  • 如果文件中包含的索引图像,则A是-通过-n索引值的阵列对应于所述颜色索引在地图

  • 如果该文件包含一个真彩色图像,则A是-通过-n3数组。

  • 如果该文件是包含使用CMYK颜色空间的彩色图像一个TIFF文件,则A是一个-通过-n-by-4阵列。

阶级一个取决于图像格式和图像数据的位深度。有关详细信息,请参见算法

色彩映射表与索引图像数据相关联一个,返回一个-乘3矩阵的类

透明度的信息,返回一个矩阵。对于PNG文件,透明度是α通道,如果存在的话。如果没有alpha通道存在,或者如果指定的'背景颜色'然后是名称-值对参数透明度是空的。对于CUR和ICO文件,透明度是和面具。对于游标文件,此掩码有时包含唯一有用的数据。

更多关于

全部折叠

位深度

比特深度是用于表示每个图像像素的比特数。

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

算法

全部折叠

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

文件位深度

返回的数组类

每像素1个比特

逻辑

每个彩色平面2到8位

UINT8

每像素9到16位

UINT16(骨形态发生蛋白,JPEG,PNG,和蒂芙)

对于16位BMP压缩格式(5-6-5),MATLAB返回UINT8

以下部分提供有关特定格式的支持,通过格式名称的字母顺序列出的信息。万博1manbetx

Windows位图

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 无压缩 RLE压缩 输出类 笔记
1位 - - - - - - 逻辑
4位 UINT8
8位 UINT8
16位 - - - - - - UINT8 1个样本/像素
24位 - - - - - - UINT8 3个样品/像素
32位 - - - - - - UINT8 3个样品/像素
(1个字节的填充)

CUR - 光标文件

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 无压缩 压缩 输出类
1位 - - - - - - 逻辑
4位 - - - - - - UINT8
8位 - - - - - - UINT8

请注意

默认情况下,微软®窗户®光标是32 x 32像素。因为MATLAB指针必须是16乘16,所以可能需要缩放图像。如果你有图像处理工具箱™,您可以使用imresize函数。

GIF - 图形交换格式

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 无压缩 压缩 输出类
1位 - - - - - - 逻辑
2位到8位 - - - - - - UINT8

HDF4 -层次数据格式

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 带有colormap的光栅图像 没有颜色映射的光栅图像 输出类 笔记
8位 UINT8
24位 - - - - - - UINT8 3个样品/像素

ICO-图标文件

JPEG -联合摄影专家组

读取任何基准JPEG图像,以及带有一些常用扩展的JPEG图像。有关jpeg2000文件支持的信息,请参阅万博1manbetxJPEG 2000

万博1manbetx每个样本支持的位数 有损压缩 无损压缩 输出类 笔记
8位 UINT8 灰度或RGB
12位 UINT16 灰度或RGB
16位 - - - - - - UINT16 灰度

JPEG 2000 - 2000联合图像专家组

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

请注意

索引JPEG 2000图像不被支持。万博1manbetx只有JP2兼容的色彩空间都支持JP2 / JPX文件。万博1manbetx默认情况下,所有的图像通道在它们被存储在文件中的顺序返回。

万博1manbetx每个样本支持的位数

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

可移植位图

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 原始二进制 ASCII(普通)编码 输出类
1位 逻辑

PCX - Windows画笔

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 输出类 笔记
1位 逻辑 只有灰度
8位 UINT8 灰度或索引
24位 UINT8 RGB
三个8位采样/像素

便携式灰度图

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 原始二进制 ASCII(普通)编码 输出类 笔记
8位 - - - - - - UINT8
16位 - - - - - - UINT16
任意的 - - - - - - 出的8位:UINT8
9位到16位:UINT16
值被缩放

PNG -便携式网络图形

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

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

PPM - 便携式像素图

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 原始二进制 ASCII(普通)编码 输出类
多达16位 - - - - - - UINT8
任意的 - - - - - -

RAS - Sun光栅

此表列出了受支持的位深度和输出图像万博1manbetx数据数组的数据类型。

万博1manbetx支持位深度 输出类 笔记
1位 逻辑 位图
8位 UINT8 索引
24位 UINT8 RGB
三个8位采样/像素
32位 UINT8 带Alpha的RGB
四个8位/像素样本

TIFF-标记图像文件格式

读取TIFF规范或LibTIFF支持万博1manbetx的大多数图像。的函数支持这些TIF万博1manbetxF功能:

  • 每个像素的任意采样数

  • CCITT组3和4传真、压缩、JPEG、LZW、Deflate、雷击压缩和未压缩图像

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

  • RGB,CMYK,CIELAB,ICCLAB色彩空间。如果彩色图像使用CMYK色彩空间,一个是一个-通过-n-by-4阵列。要确定哪些颜色空间时,使用伊姆芬福获取有关图形文件的信息并查看PhotometricInterpretation领域。如果文件包含CIELAB颜色数据,将其转换为ICCLAB,然后将其放入MATLAB工作空间。这种转换是必要的,因为8位或16位TIFF cielab编码的值混合使用有符号和无符号数据类型,不能用单个MATLAB数组表示。

  • 组织成平铺或扫描线的数据

读取并转换TIFF图像,如下所示:

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

  • 所有的灰度图像都读作黑色=0,白=最大值。

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

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

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

对于版权信息,请打开libtiffcopyright.txt文件。

XWD - X窗口转储

此表列出了XWD文件支持的位深度、压缩和输万博1manbetx出类。

万博1manbetx支持位深度 ZPixmaps公司 XYBitmaps XYPixmaps 输出类
1位 - - - - - - 逻辑
8位 - - - - - - - - - - - - UINT8

扩展功能

在R2006a之前引入