Tiff
MATLAB网关LibTIFF库例程
描述
一个Tiff
对象代表了一个连接到一个标签图像文件格式(TIFF)文件和提供的许多功能LibTIFF库。Tiff
提供了更多的功能比imread
和imwrite
功能,比如阅读子图象,写瓷砖和条状的图像数据,修改个人TIFF标签。
在大多数情况下,语法的Tiff
目标函数类似于相应LibTIFF库函数的语法。完全理解的能力Tiff
对象,参考LibTIFF API和TIFF规范和技术笔记。查看这个文档LibTIFF, TIFF库和公用事业。
MATLAB®金宝app支持4.4.0 LibTIFF版本。
创建
输入参数
文件名
- - - - - -文件的名字
特征向量|字符串标量
名字的文件,指定为一个特征向量或字符串标量。
例子:“myfile.tif”
模式
- - - - - -文件访问类型
“r”
(默认)|' w '
|“w8”
|“一个”
|' r + '
文件访问类型,指定这些值。
参数 | 描述 |
---|---|
“r” |
打开文件阅读(默认)。 |
' w ' |
打开文件编写;抛弃现有的内容。 |
“w8” |
打开文件编写BigTIFF文件;抛弃现有的内容。 |
“一个” |
打开或创建文件编写;将数据附加到文件结束。 |
' r + ' |
打开(不要创建)文件阅读和写作。 |
当您打开一个TIFF文件编写或附加Tiff
对象会自动创建一个IFD在编写后续数据的文件。这个IFD TIFF修订中指定的默认值6.0
。
属性
TIFF文件包含图像文件目录(IFDs)包含图像数据和相关的标签。标签包含图片相关的信息,如图像宽度、高度的图片,和样本的数量。每个TIFF属性是一个结构,它提供了一个标签值。使用设置标签值setTag
函数。例如,创建一个文件并指定JPEG压缩。
t = Tiff (' myfile.tif ', ' w ');setTag (t,“压缩”,Tiff.Compression.JPEG);
当你创建一个文件,写入数据文件之前,您必须设置这些标签:
ImageWidth |
压缩 |
ImageLength |
PlanarConfiguration |
BitsPerSample |
光度 |
SamplesPerPixel |
根据图像的布局,必须设置这些额外的标签:
剥夺了布局,设置
RowsPerStrip
标签。平铺的布局设置
TileWidth
和TileHeight
标签。
压缩
- - - - - -计划压缩图像数据
结构
计划压缩图像数据,存储在一个结构与这些字段。
字段名 |
---|
没有一个 |
CCITTRLE(只读) |
CCITTFax3 |
CCITTFax4 |
LZW |
OJPEG |
JPEG |
AdobeDeflate |
… |
看到一个完整的价值观,MATLAB支持列表金宝app压缩
标签类型Tiff.Compression
在命令窗口中。
例子:setTag (t,“压缩”,Tiff.Compression.JPEG);
ExtraSamples
- - - - - -额外的通道描述
结构
额外的通道描述,存储在一个与这些领域的结构。
字段名 | 描述 |
---|---|
未指明的 |
未指定的数据 |
AssociatedAlpha |
有关α(自左乘) |
UnassociatedAlpha |
α无关的数据 |
如果额外的渠道存在除了通常比色通道,然后ExtraSamples
标记是必需的。使用一个例子,看到写Tiff图像颜色和Alpha通道数据。
例子:setTag (t ' ExtraSamples Tiff.ExtraSamples.AssociatedAlpha)
Group3Options
- - - - - -组3传真机压缩选项
结构
组3传真机压缩选项,存储在一个与这些领域的结构。
字段名 | 描述 |
---|---|
Encoding2D |
0 = 1。 这个值指定二维编码。如果指定超过一条,每条必须首先一条单向的编码。也就是说, |
未压缩的 |
1是1。 这个值指定一个未压缩的方式编码。 |
FillBits |
2等于1。 根据需要添加填充比特EOL代码之前,这样EOL总是最后一个字节边界。这将确保零咬之前一个生物序列的1个字节。例如, |
这个属性也被称为Fax3
或T4Options
。属性的值是一个位元遮罩由第一个控制3
位。
例子:setTag (t ' Group3Options Tiff.Group3Options.Uncompressed);
InkSet
- - - - - -分离图像墨水设置
结构
分离图像墨水,存储在一个与这些领域的结构。
字段名 | 描述 |
---|---|
CMYK |
组件的顺序:青色,品红色,黄色,黑色。通常,值0表示0%的油墨覆盖率和值255表示100%的油墨覆盖率的组件,但咨询TIFF规范DotRange 。当你指定CMYK,不设置InkNames 标签。 |
MultiInk |
CMYK以外的任何命令。查阅TIFF规范InkNames 字段的描述所使用的油墨。 |
在这个属性的背景下,分离是指光度解释(而不是平面配置)。
例子:setTag (t ' InkSet Tiff.InkSet.CMYK);
JPEGColorMode
- - - - - -颜色模式
结构
颜色模式中,存储在一个与这些领域的结构。
字段名 | 描述 |
---|---|
生 (默认) |
保持输入作为单独的Y、Cb和Cr矩阵。 |
RGB |
YCbCr转换RGB输入。 |
不使用这个属性来读YCbCr
意象作为RGB
。而不是使用RGBA
提供的接口readRGBAImage
,readRGBAStrip
,readRGBATile
功能。
例如,看到的创建YCbCr / JPEG图像从RGB数据。
例子:setTag (t ' JPEGColorMode Tiff.JPEGColorMode.RGB);
取向
- - - - - -视觉定位的图像数据
结构
视觉定位的图像数据,存储在一个与这些领域的结构。
字段名 |
---|
TopLeft |
TopRight |
BottomRight |
BottomLeft |
LeftTop |
RightTop |
RightBottom |
LeftBottom |
的取向
属性描述了图像取向对行和列。例如,当取向
被设置为TopLeft
,然后第一行代表图像的顶部,和第一列代表左边。中指定的值取向
仅作参考之用,并不影响MATLAB图像数据的读或写。
例子:setTag (t,“定位”,Tiff.Orientation.TopLeft);
光度
- - - - - -颜色空间的图像数据
结构
颜色空间的图像数据,存储在一个与这些领域的结构。
字段名 |
---|
MinIsWhite |
MinIsBlack |
RGB |
调色板 |
面具 |
分离(CMYK) |
YCbCr |
CIELab |
ICCLab |
ITULab |
LogL |
LogLUV |
非洲金融共同体 |
LinearRaw |
例子:setTag (t)的光度,Tiff.Photometric.RGB);
PlanarConfiguration
- - - - - -存储配置
结构
图像的存储配置组件值,存储在一个与这些领域的结构。
字段名 | 描述 |
---|---|
厚实 |
为每个像素连续存储组件的值。例如,在RGB数据的情况下,存储文件作为RGBRGBRGB前三个像素。几乎所有的TIFF图像相邻平面构型。 |
单独的 |
为每个像素分别存储组件值。例如,在RGB数据的情况下,红色的组件是分别存储在文件从绿色和蓝色的组件。 |
例子:setTag (t ' PlanarConfiguration Tiff.PlanarConfiguration.Chunky);
ResolutionUnit
- - - - - -分辨率的单位
结构
分辨率单位解释中包含的值XResolution
和YResolution
与这些领域的标签,存储在一个结构。
字段名 | 描述 |
---|---|
没有一个 |
默认值。 |
英寸 |
分配单元中包含英寸值XResolution 和YResolution 标签。 |
厘米 |
分配单位厘米中包含的值XResolution 和YResolution 标签。 |
例如,下面的代码集的图像分辨率的价值X
和Y
方向300年
每英寸像素:
setTag (t)“ResolutionUnit”,Tiff.ResolutionUnit.Inch);setTag (t)“XResolution”,300);setTag (t)“YResolution”,300);
例子:setTag (t ' ResolutionUnit Tiff.ResolutionUnit.Inch);
SampleFormat
- - - - - -像素样本格式
结构
像素样本格式存储在这些字段的结构。
字段名 | 描述 |
---|---|
使用UInt (默认) |
无符号整数数据 |
Int |
二进制补码带符号整数数据 |
IEEEFP |
IEEE浮点数据 |
MATLAB不支持的格式金宝app无效
,ComplexInt
,ComplexIEEEFP
。
例子:setTag (t ' SampleFormat Tiff.SampleFormat.IEEEFP);
SGILogDataFmt
- - - - - -SGIL
编码数据格式
结构
SGIL
编码数据格式存储在这些字段的结构。
字段名 | 描述 |
---|---|
浮动 |
单精度样本。 |
Bits8 |
uint8 样品(只读)。 |
设置SGILogDataFmt
来浮动
或Bits8
意味着一个SamplesPerPixel
的价值3
为LogLuv
图像和的值1
为LogL
图像。
你可以设置SGILogDataFmt
每个实例标签只有一次LogL / LogLuv
TIFF图像对象。
使用下面的代码来创建一个Tiff
对象,设置SGIL数据格式,然后读取图像数据。
tiffobj = Tiff (“example.tif”,“r”);setDirectory (tiffobj 3);%图像三LogLuv形象setTag (tiffobj“SGILogDataFmt”,Tiff.SGILogDataFmt.Float);imdata =阅读(tiffobj);
例子:setTag (t ' SGILogDataFmt Tiff.SGILogDataFmt.Float);
SubFileType
- - - - - -类型的图像
结构
类型的图像,存储在一个与这些领域的结构。
字段名 | 描述 |
---|---|
默认的 |
默认值为单一的图像文件或第一形象。 |
ReducedImage |
多重图象的图像是一个图像文件(或多页)。 |
页面 |
α无关的数据。 |
面具 |
图像是一个透明蒙版,另一个图像文件。光度值必须解释Photometric.Mask 。 |
例子:setTag (t ' SubFileType Tiff.SubFileType.Mask);
TagID
- - - - - -TIFF标签id
结构
MATLAB支持TIFF标签id,存储在一个与这些金宝app领域的结构。
字段名 | 价值 |
---|---|
SubFileType |
254年 |
ImageWidth |
256年 |
ImageLength |
257年 |
BitsPerSample |
258年 |
压缩 |
259年 |
光度 |
262年 |
阈值 |
263年 |
FillOrder |
266年 |
… |
… |
标签名称的完整列表和相应的标签id、类型Tiff.TagID
在命令窗口中。
使用这个属性来指定一个标签,当你使用setTag
函数。例如,Tiff.TagID.ImageWidth
返回的IDImageWidth
标签。所有支持的列表标签,使用金宝appTiff.getTagNames
函数。
例子:Tiff.TagID.ImageWidth setTag (t, 300);
阈值
- - - - - -阈值技术
结构
阈值技术,存储在一个与这些领域的结构。
字段名 |
---|
上下两层的 |
半色调 |
ErrorDiffuse |
使用这个标签来指定使用哪个算法从灰度像素转换成黑白。
例子:setTag (t,“阈值”,Tiff.Thresholding.HalfTone);
YCbCrPositioning
- - - - - -色度样品的位置
结构
色度的位置相对亮度样本,样本存储在这些字段的结构。
字段名 | 描述 |
---|---|
为中心的 |
指定为兼容行业标准,如PostScript®级别2。 |
Cosited |
指定兼容大多数数字视频标准,如CCIR推荐601 - 1。 |
例子:setTag (t ' YCbCrPositioning Tiff.YCbCrPositioning.Centered);
对象的功能
TIFF文件由一个或多个图像文件目录(IFDs)。一个IFD包含图像数据及其相关的元数据。IFDs可以包含subIFDs,也包含图像数据和元数据。当您打开一个TIFF文件阅读,Tiff
使第一个IFD的文件对象当前的IFD。Tiff对象函数对当前IFD运作。
读取图像
读 |
阅读整个TIFF图像 |
readEncodedStrip |
从指定读取数据 |
readEncodedTile |
读取数据从指定的瓷砖 |
readRGBAImage |
读取图像使用RGBA接口 |
readRGBAStrip |
阅读使用RGBA带数据接口 |
readRGBATile |
阅读使用RGBA瓦片数据接口 |
关闭 |
关闭Tiff对象 |
编写图像
写 |
写完整的图像 |
writeEncodedStrip |
写数据到指定的地带 |
writeEncodedTile |
写数据到指定的瓷砖 |
关闭 |
关闭Tiff对象 |
设置或获取标签
getTag |
指定的标签 |
setTag |
设置标签的价值 |
Tiff.getTagNames |
公认的TIFF标记列表 |
改变图像文件目录(IFD)
currentDirectory |
返回当前IFD的指数 |
lastDirectory |
确定当前IFD在文件中 |
nextDirectory |
使下一个当前IFD IFD |
setDirectory |
使当前IFD IFD指定 |
setSubDirectory |
使当前IFD subIFD |
rewriteDirectory |
写修改现有IFD的元数据 |
writeDirectory |
创建新的IFD IFD并使其电流 |
瓷砖,地带,或图书馆的信息
isTiled |
确定是平铺的图像 |
computeTile |
指数的瓷砖包含指定的坐标 |
numberOfTiles |
的瓷砖总数的形象 |
computeStrip |
带索引号包含指定的坐标 |
numberOfStrips |
在形象的总数 |
getVersion |
LibTIFF库版本 |
例子
使用TIFF对象创建新的TIFF文件
写Tiff图像颜色和Alpha通道数据
数据集的颜色和alpha通道,设置Tiff
标签,然后将数据写入一个文件。
创建一个数组的数据,数据
,包含颜色通道和一个alpha通道。
rgb = imread (“example.tif”);numrows =大小(rgb, 1);numcols =大小(rgb, 2);α= 255 * 1 ([numrows numcols),“uint8”);data =猫(3 rgbα);
创建一个Tiff
对象。
Tiff (t =“myfile.tif”,' w ');
设置Tiff标签和指定的值ExtraSamples
标签,因为数据包含alpha通道除了颜色通道。
setTag (t)光度的,Tiff.Photometric.RGB);setTag (t)“压缩”,Tiff.Compression.None);setTag (t)“BitsPerSample”8);setTag (t)“SamplesPerPixel”4);setTag (t)“SampleFormat”,Tiff.SampleFormat.UInt);setTag (t)“ExtraSamples”,Tiff.ExtraSamples.Unspecified);setTag (t)“ImageLength”numrows);setTag (t)“ImageWidth”,numcols);setTag (t)“TileLength”、32);setTag (t)“TileWidth”、32);setTag (t)“PlanarConfiguration”,Tiff.PlanarConfiguration.Chunky);
把数据写入到TIFF文件并关闭Tiff
对象。
写(t)数据);关闭(t);
创建YCbCr / JPEG图像从RGB数据
RGB图像数据写入一个TIFF文件作为YCbCr / JPEG图像。
得到RGB数据。
rgb = imread (“example.tif”);
创建一个Tiff
对象,t
,并设置标签。指定输入数据是RGB的使用JPEGColorMode
标签。
Tiff (t =“myfile.tif”,' w ');setTag (t)光度的,Tiff.Photometric.YCbCr);setTag (t)“压缩”,Tiff.Compression.JPEG);setTag (t)“YCbCrSubSampling”(2 - 2));setTag (t)“BitsPerSample”8);setTag (t)“SamplesPerPixel”3);setTag (t)“SampleFormat”,Tiff.SampleFormat.UInt);setTag (t)“ImageLength”、大小(rgb, 1));setTag (t)“ImageWidth”、大小(rgb, 2));setTag (t)“TileLength”、32);setTag (t)“TileWidth”、32);setTag (t)“PlanarConfiguration”,Tiff.PlanarConfiguration.Chunky);setTag (t)“JPEGColorMode”,Tiff.JPEGColorMode.RGB);setTag (t)“JPEGQuality”,75);
把数据写入到TIFF文件并关闭Tiff
对象。
写(t, rgb);关闭(t);
版本历史
介绍了R2009bR2022b:LibTIFF 4.4.0升级到版本库
LibTIFF图书馆是4.4.0升级到版本。
R2021b:LibTIFF 4.2.0升级到版本库
LibTIFF图书馆是4.2.0升级到版本。
R2020b:读取图像Aperio sv和TIFF文件包含JPEG 2000压缩
你可以阅读Aperio sv显微镜图像文件,与JPEG 2000压缩TIFF图像文件。
R2020b:LibTIFF 4.1.0升级到版本库
LibTIFF图书馆是4.1.0升级到版本。
R2020a:读和写有理多项式系数的值标签
你可以读和写有理多项式系数的值(RPC)标签使用RPCCoefficientTag
标记Tiff
对象。有关更多信息,请参见表6导出图片。
R2019b:LibTIFF 4.0.10升级到版本库
LibTIFF图书馆是4.0.10升级到版本。
R2019b:Tiff
不推荐对象编写特定的TIFF文件
写作的TIFF图像与某些组合光度配置和不推荐每像素样本的数量。的价值SamplesPerPixel
必须等于的总和光度
颜色通道和价值ExtraSamples
中指定的Tiff
对象。
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。