主要内容

Tiff

MATLAB网关LibTIFF库例程

描述

一个Tiff对象代表了一个连接到一个标签图像文件格式(TIFF)文件和提供的许多功能LibTIFF库。Tiff提供了更多的功能比imreadimwrite功能,比如阅读子图象,写瓷砖和条状的图像数据,修改个人TIFF标签。

在大多数情况下,语法的Tiff目标函数类似于相应LibTIFF库函数的语法。完全理解的能力Tiff对象,参考LibTIFF API和TIFF规范和技术笔记。查看这个文档LibTIFF, TIFF库和公用事业

MATLAB®金宝app支持4.4.0 LibTIFF版本。

创建

描述

例子

obj = Tiff (文件名)创建一个Tiff对象TIFF文件的读访问权文件名

例子

obj = Tiff (文件名,模式)创建一个Tiff对象的类型访问指定的TIFF文件模式

输入参数

全部展开

名字的文件,指定为一个特征向量或字符串标量。

例子:“myfile.tif”

文件访问类型,指定这些值。

参数 描述
“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标签。

  • 平铺的布局设置TileWidthTileHeight标签。

计划压缩图像数据,存储在一个结构与这些字段。

字段名
没有一个
CCITTRLE(只读)
CCITTFax3
CCITTFax4
LZW
OJPEG
JPEG
AdobeDeflate

看到一个完整的价值观,MATLAB支持列表金宝app压缩标签类型Tiff.Compression在命令窗口中。

例子:setTag (t,“压缩”,Tiff.Compression.JPEG);

额外的通道描述,存储在一个与这些领域的结构。

字段名 描述
未指明的 未指定的数据
AssociatedAlpha 有关α(自左乘)
UnassociatedAlpha α无关的数据

如果额外的渠道存在除了通常比色通道,然后ExtraSamples标记是必需的。使用一个例子,看到写Tiff图像颜色和Alpha通道数据

例子:setTag (t ' ExtraSamples Tiff.ExtraSamples.AssociatedAlpha)

组3传真机压缩选项,存储在一个与这些领域的结构。

字段名 描述
Encoding2D

0 = 1。

这个值指定二维编码。如果指定超过一条,每条必须首先一条单向的编码。也就是说,RowsPerStrip必须是一个多个参数K记录在CCITT规范。

未压缩的

1是1。

这个值指定一个未压缩的方式编码。

FillBits

2等于1。

根据需要添加填充比特EOL代码之前,这样EOL总是最后一个字节边界。这将确保零咬之前一个生物序列的1个字节。例如,xxxx - 0000 0000 - 0001

这个属性也被称为Fax3T4Options。属性的值是一个位元遮罩由第一个控制3位。

例子:setTag (t ' Group3Options Tiff.Group3Options.Uncompressed);

分离图像墨水,存储在一个与这些领域的结构。

字段名 描述
CMYK 组件的顺序:青色,品红色,黄色,黑色。通常,值0表示0%的油墨覆盖率和值255表示100%的油墨覆盖率的组件,但咨询TIFF规范DotRange。当你指定CMYK,不设置InkNames标签。
MultiInk CMYK以外的任何命令。查阅TIFF规范InkNames字段的描述所使用的油墨。

在这个属性的背景下,分离是指光度解释(而不是平面配置)。

例子:setTag (t ' InkSet Tiff.InkSet.CMYK);

颜色模式中,存储在一个与这些领域的结构。

字段名 描述
(默认) 保持输入作为单独的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);

图像的存储配置组件值,存储在一个与这些领域的结构。

字段名 描述
厚实 为每个像素连续存储组件的值。例如,在RGB数据的情况下,存储文件作为RGBRGBRGB前三个像素。几乎所有的TIFF图像相邻平面构型。
单独的 为每个像素分别存储组件值。例如,在RGB数据的情况下,红色的组件是分别存储在文件从绿色和蓝色的组件。

例子:setTag (t ' PlanarConfiguration Tiff.PlanarConfiguration.Chunky);

分辨率单位解释中包含的值XResolutionYResolution与这些领域的标签,存储在一个结构。

字段名 描述
没有一个 默认值。
英寸 分配单元中包含英寸值XResolutionYResolution标签。
厘米 分配单位厘米中包含的值XResolutionYResolution标签。

例如,下面的代码集的图像分辨率的价值XY方向300年每英寸像素:

setTag (t)“ResolutionUnit”,Tiff.ResolutionUnit.Inch);setTag (t)“XResolution”,300);setTag (t)“YResolution”,300);

例子:setTag (t ' ResolutionUnit Tiff.ResolutionUnit.Inch);

像素样本格式存储在这些字段的结构。

字段名 描述
使用UInt(默认) 无符号整数数据
Int 二进制补码带符号整数数据
IEEEFP IEEE浮点数据

MATLAB不支持的格式金宝app无效,ComplexInt,ComplexIEEEFP

例子:setTag (t ' SampleFormat Tiff.SampleFormat.IEEEFP);

SGIL编码数据格式存储在这些字段的结构。

字段名 描述
浮动 单精度样本。
Bits8 uint8样品(只读)。

设置SGILogDataFmt浮动Bits8意味着一个SamplesPerPixel的价值3LogLuv图像和的值1LogL图像。

你可以设置SGILogDataFmt每个实例标签只有一次LogL / LogLuvTIFF图像对象。

使用下面的代码来创建一个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);

类型的图像,存储在一个与这些领域的结构。

字段名 描述
默认的 默认值为单一的图像文件或第一形象。
ReducedImage 多重图象的图像是一个图像文件(或多页)。
页面 α无关的数据。
面具 图像是一个透明蒙版,另一个图像文件。光度值必须解释Photometric.Mask

例子:setTag (t ' SubFileType Tiff.SubFileType.Mask);

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);

色度的位置相对亮度样本,样本存储在这些字段的结构。

字段名 描述
为中心的 指定为兼容行业标准,如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标记列表
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库版本

例子

全部折叠

创建一个新文件myfile.tif。要运行这个示例,您必须编写访问文件夹。

Tiff (t =“myfile.tif”,' w ');

关闭Tiff对象。

关闭(t);

数据集的颜色和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);

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);

版本历史

介绍了R2009b

全部展开