主要内容

TIFF

马铃薯对Libtiff图书馆例程的门户

描述

一种TIFF对象表示与标记的图像文件格式(TIFF)文件的连接,并提供对Libtiff库的许多功能的访问。TIFF提供更多的能力Imread.IMWRITE.函数,例如读取子图,编写图块和图像数据条,以及修改单独的TIFF标签。

在大多数情况下,语法TIFF对象函数类似于相应的Libtiff库函数的语法。充分了解的能力TIFF对象,请参阅Libtiff API和TIFF规范和技术说明。查看此文档libtiff - tiff图书馆和公用事业

马铃薯®金宝app支持Libtiff版本4.1.0。有关版权信息libtiff图书馆,见libtiffcopyright.txt.文件。

创建

描述

例子

obj = tiff(文件名创造一个TIFF对TIFF文件的读访问权限文件名

例子

obj = tiff(文件名模式创造一个TIFF对象具有访问TIFF文件的类型模式

输入参数

展开全部

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

例子:'myfile.tif'

文件访问类型,指定为其中一个值。

范围 描述
'r' 打开文件读取(默认)。
'W' 打开文件写作;丢弃现有内容。
'w8' 打开文件编写Bigtiff文件;丢弃现有内容。
'一种' 打开或创建文件以进行写作;将数据附加到文件结束。
'r +' 打开(不创建)文件以供阅读和写入。

当您打开一个TIFF文件进行写作或附加时,TIFF对象在文件中自动创建IFD以编写后续数据。此IFD具有TIFF修订中指定的所有默认值6.0

特性

展开全部

TIFF文件由包含图像数据和关联标记的图像文件目录(IFD)组成。标签包含图像相关信息,例如图像宽度,图像高度和样本的数量。每个TIFF属性是提供标签值的结构。使用备份标记值settag.功能。例如,创建文件并指定JPEG压缩。

t = tiff('myfile.tif','w');settag(t,'compression',tiff.comlecression.jpeg);

创建文件时,在将数据写入文件之前,必须设置这些标签:

ImageWidth. 压缩
ImageLength. PlanarConfiguration.
Bitspersample. 光度法
Samplespixel.

根据图像的布局,您必须设置这些附加标签:

  • 剥离布局 - 设置Rowsperstrip.标签。

  • 瓷砖布局 - 设置瓷砖瓷砖标签。

方案要压缩图像数据,存储在具有这些字段的结构中。

字段名称
没有任何
ccittrle(只读)
ccittfax3.
ccittfax4.
LZW.
ojpeg
JPEG.
adobedflate.
......

查看Matlab支持的完整值列表金宝app压缩标签,类型TIFF.CREMS塑造在命令窗口中。

例子:settag(t,'compression',tiff.comlecression.jpeg);

额外的频道描述,存储在具有这些字段的结构中。

字段名称 描述
未指明 未指定的数据
CommysedAlpha. 相关阿尔法(预升降)
无分配alpha. 无关联的alpha数据

如果除了通常的比色频道之外存在额外的频道,那么extraSaples.标签是必需的。有关示例用法,请参阅用颜色和alpha通道数据写入TIFF图像

例子:settag(t,'extrasamples',tiff.extrasamples.associatealpha)

第3组传真压缩选项,存储在具有这些字段的结构中。

字段名称 描述
Encoding2d.

位0是1。

此值指定二维编码。如果指定了多个条带,则每个条带必须以一维编码的线路开头。那是,Rowsperstrip.必须是参数的倍数K.,如CCITT规范中的文件所示。

未压缩

位1是1。

该值指定在编码时的未压缩模式。

填充

位2是1。

在EOL代码之前必要地添加填充位,使得EOL始终以字节边界结束。这确保了零点循环在eol序列之前1字节。例如,XXXX-0000 0000-0001

此属性也称为FAX3.要么T4Options.。属性的值是由第一个控制的位掩码3.比特。

例子:settag(t,'group3options',tiff.group3options.uncombort);

分离图像墨水集,存储在具有这些字段的结构中。

字段名称 描述
CMYK. 组件的顺序:青色,洋红色,黄色,黑色。通常,值0表示0%墨覆盖率,值255表示该组件的100%墨迹,但咨询TIFF规范dotrange.。指定CMYK时,请勿设置墨迹标签。
多链接 除CMYK以外的任何订购。咨询TIFF规范墨迹用于描述墨水的描述。

在此属性的上下文中,分离是指光度解释(不是平面配置)。

例子:settag(t,'inkset',tiff.inkset.cmyk);

颜色模式,存储在具有这些字段的结构中。

字段名称 描述
生的(默认) 将输入保持为单独的y,cb和cr矩阵。
RGB. 将RGB输入转换为YCBCR。

请勿使用此属性读取ycbcr.意象RGB.。而是使用RGBA.界面提供READRGBAIMAGE.ReadRgbastrip., 和ReadrgBatile.功能。

例如,看到从RGB数据创建YCBCR / JPEG图像

例子:settag(t,'jpegcolormode',tiff.jpegcolormode.rgb));

图像数据的视觉方向,存储在具有这些字段的结构中。

字段名称
左上方
右上
突出
左下方
左撇子
Righttop.
右栏
Leftbottom.

方向属性描述了关于行和列的图像方向。例如,何时方向被设置为左上方,然后第一行表示图像的顶部,并且第一列表示左侧。中指定的值方向仅用于信息目的,它不会影响MATLAB如何读取或写入图像数据。

例子:settag(t,'定向',tiff.orientation.propleft);

图像数据的颜色空间,存储在具有这些字段的结构中。

字段名称
米敏
min
RGB.
调色板
面具
分开(CMYK)
ycbcr.
CIELAB.
icclab.
Itulab.
logl.
logluv.
CFA
linearraw.

例子:settag(t,'photometric',tiff.photometric.rgb);

存储配置图像组件值,存储在具有这些字段的结构中。

字段名称 描述
矮胖 连续地存储每个像素的组件值。例如,在RGB数据的情况下,将文件中的前三个像素存储为RGBRGBRGB。几乎所有TIFF图像都具有连续的平面配置。
分离 单独存储每个像素的组件值。例如,在RGB数据的情况下,红色组件在来自绿色和蓝色组件的文件中单独存储。

例子:settag(t,'planarconfiguration',tiff.planarconfiguration.chunky);

解决方案单位解释所包含的值Xresolution.Yresolution.标签,存储在具有这些字段的结构中。

字段名称 描述
没有任何 默认值。
英寸 为包含的值分配单位英寸Xresolution.Yresolution.标签。
厘米 为包含的值分配单位厘米Xresolution.Yresolution.标签。

例如,以下代码设置了图像分辨率的值Xy指示300每英寸的像素:

settag(t,'解决决心',tiff.resolutionUnit.inch);settag(t,'xresolution',300);settag(t,'yresolution',300);

例子:settag(t,'decomatenit',tiff.resolutionUnit.inch);

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

字段名称 描述
uint.(默认) 无符号整数数据
两个补码签名整数数据
IEEEFP. IEEE浮点数据

MATLAB不支持格式金宝app空白复杂, 和复杂的东西

例子:settag(t,'sampleformat',tiff.sampleformat.ieeefp);

斯科编解码器数据格式,存储在具有这些字段的结构中。

字段名称 描述
漂浮 单精度样本。
比特8 uint8.样品(只读)。

设置SGILOGDATAFMT.漂浮要么比特8意味着A.Samplespixel.的价值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);

图像的类型,存储在具有这些字段的结构中。

字段名称 描述
默认 单个图像文件或第一张图像的默认值。
Contefimage. 图像是多次数(或多帧)文件的单个图像。
无关联的alpha数据。
面具 图像是文件中另一图像的透明度掩码。光度解释值必须是光度法

例子:settag(t,'subfiletype',tiff.subfiletype.mask);

MATLAB支持的TIFF标签ID,使用这些字段存金宝app储在结构中。

字段名称 价值
subfiletype. 254.
ImageWidth. 256.
ImageLength. 257.
Bitspersample. 258.
压缩 259.
光度法 262.
阈值 263.
填充 266.
...... ......

有关标记名称的完整列表及其相应的标记ID,请键入tiff.tagid.在命令窗口中。

使用此属性在使用时指定标记settag.功能。例如,tiff.tagid.ImageWidth.返回id的idImageWidth.标签。要获取所有支持的标签的列表,请使用金宝apptiff.gettagnames.功能。

例子:settag(t,tiff.tagid.imagewidth,300);

阈值技术,使用这些字段存储在结构中。

字段名称
贝蒂斯特
半色调
errordiffuse.

使用此标记指定将像素从灰度转换为黑白时使用的算法。

例子:settag(t,'阈值',tiff.thresholding.halftone);

色度样本相对于亮度样本的位置,储存在具有这些领域的结构中。

字段名称 描述
以中心为中心 指定与行业标准的兼容性,例如PostScript®等级2。
装配 指定与大多数数字视频标准的兼容性,例如CCIR建议601-1。

例子:settag(t,'ycbcr.cosition',tiff.ycbcrpositioning.cented);

对象功能

TIFF文件由一个或多个图像文件目录(IFDS)组成。IFD包含图像数据及其关联的元数据。IFD可以包含下限,也包含图像数据和元数据。当你打开一个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的指数
莱德联络 确定当前IFD是否在文件中持续
nextDirectory. 让下一个IFD当前IFD
setDirectory. 使指定IFD当前IFD
setsubdirectory. 使得uchifd当前IFD
Rewrediredirectory. 将修改后的元数据写入现有IFD
writedilectory. 创建新的IFD并使其当前IFD
被诅咒 确定图像是否是平铺的
Computeretile. 索引包含指定坐标的图块数
崇拜者 图像中的瓷砖总数
计算 索引包含指定坐标的条带数
numberofstrips. 图像中的条带总数
getVersion. libtiff图书馆版本

例子

全部收缩

创建一个名为的新文件myfile.tif.。要运行此示例,您必须对文件夹具有写入权限。

t = tiff('myfile.tif''W');

关上TIFF目的。

壁橱);

对于具有颜色和alpha通道的数据集,请设置TIFF标签然后将数据写入文件。

创建一个数据数组,数据,包含颜色通道和alpha通道。

rgb = imread('example.tif');numrows = size(RGB,1);numcols = size(RGB,2);alpha = 255 *那些([numrows numcols],'uint8');数据= CAT(3,RGB,Alpha);

创建一个TIFF目的。

t = tiff('myfile.tif''W');

设置TIFF标签并指定值的值extraSaples.标签,因为除了颜色通道之外,数据包含Alpha通道。

settag(t,'光度',tiff.photometric.rgb);settag(t,'压缩',tiff.commpression.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',小思克);settag(t,'tilelength',32);settag(t,'瓷砖',32);settag(t,'planarconfiguration',tiff.planarconfiguration.chunky);

将数据写入TIFF文件并关闭TIFF目的。

写(t,数据);壁橱);

将RGB图像数据写入TIFF文件作为YCBCR / JPEG图像。

获取RGB数据。

rgb = imread('example.tif');

创建一个TIFF目的,T.,并设置标签。指定输入数据是RGB使用的JPEGColorMode.标签。

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,'瓷砖',32);settag(t,'planarconfiguration',tiff.planarconfiguration.chunky);settag(t,'jpegcolormode',tiff.jpegcolormode.rgb));settag(t,'jpegquality',75);

将数据写入TIFF文件并关闭TIFF目的。

写(T,RGB);壁橱);
介绍在R2009B.