MATLAB通往LibTIFF库例程的网关
一个Tiff
对象表示到标记图像文件格式(TIFF)文件的连接,并提供对LibTIFF库的许多函数的访问。Tiff
提供比imread
而且imwrite
函数,例如读取子图像,写入图像数据块和条,以及修改单个TIFF标签。
类的语法在大多数情况下Tiff
对象函数与相应的LibTIFF库函数的语法相似。充分理解的能力Tiff
对象,请参阅LibTIFF API和TIFF规范和技术说明。查看此文档,请访问LibTIFF - TIFF库和实用程序
.
MATLAB®万博1manbetx支持LibTIFF 4.1.0版本。有关版权资料的LibTIFF
图书馆,请参阅libtiffcopyright.txt
文件。
文件名
- - - - - -文件名称文件名称,指定为字符向量或字符串标量。
例子:“myfile.tif”
模式
- - - - - -文件访问类型“r”
(默认)|' w '
|“w8”
|“一个”
|' r + '
文件访问类型,指定为这些值之一。
参数 | 描述 |
---|---|
“r” |
打开文件读取(默认)。 |
' w ' |
打开文件进行写作;丢弃现有内容。 |
“w8” |
打开文件,用于写入BigTIFF文件;丢弃现有内容。 |
“一个” |
打开或创建文件进行写入;将数据追加到文件末尾。 |
' r + ' |
打开(不创建)文件进行读写。 |
打开TIFF文件进行写入或追加时,Tiff
对象自动在文件中创建一个IFD,用于写入后续数据。此IFD具有TIFF Revision中指定的所有默认值6.0
.
TIFF文件由包含图像数据和相关标记的图像文件目录(ifd)组成。标签包含图像相关信息,如图像宽度、图像高度和样本数量。每个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 |
... |
控件支持的值的完整列表万博1manbetx压缩
标签类型Tiff。压缩
在命令窗口中。
例子:setTag (t,“压缩”,Tiff.Compression.JPEG);
ExtraSamples
- - - - - -额外通道描述额外的通道描述,存储在具有这些字段的结构中。
字段名 | 描述 |
---|---|
未指明的 |
未指定的数据 |
AssociatedAlpha |
相关alpha(预乘) |
UnassociatedAlpha |
无关联alpha数据 |
如果除了通常的比色通道外,还存在额外的通道,则ExtraSamples
标签是必需的。有关示例用法,请参见写Tiff图像与颜色和Alpha通道数据.
例子:setTag (t ' ExtraSamples Tiff.ExtraSamples.AssociatedAlpha)
Group3Options
- - - - - -第三组传真压缩选项传真压缩选项,存储在具有这些字段的结构中。
字段名 | 描述 |
---|---|
Encoding2D |
第0位是1。 该值指定二维编码。如果指定了多个条带,则每个条带必须以一维编码行开始。也就是说, |
未压缩的 |
第1位是1。 此值指定编码时的非压缩模式。 |
FillBits |
第2位是1。 在EOL代码之前添加必要的填充位,这样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 |
将RGB输入转换为YCbCr。 |
不使用此属性读取YCbCr
意象作为RGB
.而是使用RGBA
接口提供的readRGBAImage
,readRGBAStrip
,readRGBATile
功能。
有关示例,请参见从RGB数据创建YCbCr/JPEG图像.
例子: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不支持这些格式万博1manbetx无效
,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);%图像3是一个loguv图像setTag (tiffobj“SGILogDataFmt”, Tiff.SGILogDataFmt.Float);Imdata = read(tiffobj);
例子:setTag (t ' SGILogDataFmt Tiff.SGILogDataFmt.Float);
SubFileType
- - - - - -图像类型图像的类型,存储在具有这些字段的结构中。
字段名 | 描述 |
---|---|
默认的 |
单个图像文件或第一个图像的默认值。 |
ReducedImage |
图像是多图像(或多页)文件的单个图像。 |
页面 |
无关联alpha数据。 |
面具 |
该图像是文件中另一个图像的透明掩码。光度解释值必须为光度。面具 . |
例子:setTag (t ' SubFileType Tiff.SubFileType.Mask);
TagID
- - - - - -TIFF标签idMATLAB支持的TIFF标签id,存储在具有这些万博1manbetx字段的结构中。
字段名 | 价值 |
---|---|
SubFileType |
254 |
ImageWidth |
256 |
ImageLength |
257 |
BitsPerSample |
258 |
压缩 |
259 |
光度 |
262 |
阈值 |
263 |
FillOrder |
266 |
... |
... |
要获得标记名称及其对应的标记id的完整列表,请键入Tiff。TagID
在命令窗口。
属性时,可使用此属性指定标记setTag
函数。例如,Tiff.TagID.ImageWidth
对象的IDImageWidth
标签。要获得所有支持标记的列表,请使用万博1manbetxTiff.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文件由一个或多个图像文件目录(ifd)组成。IFD包含图像数据及其相关元数据。ifd可以包含子ifd,子ifd还包含图像数据和元数据。打开TIFF文件以进行读取时,Tiff
对象使文件中的第一个IFD为当前的IFD。Tiff对象函数作用于当前IFD。
读 |
读取整个TIFF图像 |
readEncodedStrip |
从指定条带读取数据 |
readEncodedTile |
从指定的tile读取数据 |
readRGBAImage |
使用RGBA接口读取图像 |
readRGBAStrip |
通过RGBA接口读取条带数据 |
readRGBATile |
使用RGBA接口读取瓷砖数据 |
关闭 |
关闭Tiff对象 |
写 |
写入整个映像 |
writeEncodedStrip |
将数据写入指定条带 |
writeEncodedTile |
将数据写入指定的块 |
关闭 |
关闭Tiff对象 |
getTag |
指定标签的值 |
setTag |
标签设定值 |
Tiff.getTagNames |
识别的TIFF标签列表 |
currentDirectory |
当前IFD返回索引 |
lastDirectory |
确定当前IFD是否在文件中的最后一个 |
nextDirectory |
使下一个IFD为当前IFD |
setDirectory |
指定IFD为当前IFD |
setSubDirectory |
使subIFD为当前IFD |
rewriteDirectory |
将修改后的元数据写入现有IFD |
writeDirectory |
创建新的IFD并使其成为当前IFD |
isTiled |
确定图像是否平铺 |
computeTile |
包含指定坐标的平铺索引号 |
numberOfTiles |
图像中瓷砖的总数 |
computeStrip |
包含指定坐标的带材索引号 |
numberOfStrips |
图像中条带的总数 |
getVersion |
LibTIFF库版本 |
对于具有颜色和alpha通道的数据集,请设置Tiff
标记,然后将数据写入文件。
创建一个数据数组,数据
,其中包含颜色通道和alpha通道。
RGB = imread(“example.tif”);Numrows = size(rgb,1);Numcols = size(rgb,2);Alpha = 255*ones([numrows numcols],“uint8”);数据= cat(3,rgb,alpha);
创建一个Tiff
对象。
t = Tiff(“myfile.tif”,' w ');
的值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);
将RGB图像数据作为YCbCr/JPEG图像写入TIFF文件。
获取RGB数据。
RGB = imread(“example.tif”);
创建一个Tiff
对象,t
,并设置标签。属性指定输入数据为RGBJPEGColorMode
标签。
t = Tiff(“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);
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。