图像处理、分析与机器视觉
上QQ阅读APP看书,第一时间看更新

5.3 TIFF文件

标记图像文件格式(Tagged Image File Format, TIFF)最初是桌面扫描仪厂商为了达成一个公用的扫描图像文件格式在20世纪80年代中期制定的,其后缀名为“.tif”或“.tiff”。由于当时的桌面扫描仪处理能力有限,TIFF最初只是一个二值图像格式。随着扫描仪的功能越来越强大,并且桌面计算机的磁盘空间越来越大,TIFF才逐渐开始支持灰度图像和彩色图像。目前TIFF文件共有4种类型:二值图像类型TIFF-B、黑白灰度图像TIFF-G、带调色板的彩色图像TIFF-P以及RGB彩色图像TIFF-R。

TIFF通常由图像文件头(Image File Header, IFH)、图像文件目录(Image File Directory,IFD)、目录项(Directory Entry,DE)和图像数据4部分组成。TIFF文件中的IFH、IFD和DE构建了一种逐级索引数据的方式。各个部分靠指针进行连接来组织数据,图5-11显示了TIFF文件的逻辑结构。

图5-11 TIFF文件逻辑结构

TIFF文件以指向第一个IFD的8字节的IFH开始。IFH在TIFF文件中是唯一的,它是正确解释文件其他部分的开始,其结构如表5-3所示。

表5-3 IFH的结构

IFD包含了指向图像的各种信息,同时也包含了指向实际图像数据的多个指针结构,如表5-4所示。IFD由一个2B的整数和其后的一系列12B标记目录项(DE)构成。这些DE分别标记了文件中各个实际图像数据块的位置及保存方式,因此DE也常被看作是数据标记(Tag)。IFD最后以一个长整型数结束,若其值为0,表示文件的DE项到此为止,否则该长整数为指向下一个IFD的偏移。

表5-4 IFD的结构

IFD中各个DE的结构如表5-5所示,其中直接存储实际图像数据,或者存储指向实际图像数据的指针。

表5-5 DE的结构

TIFF文件提供存储各种信息的完备的手段,是目前较流行的图像数据交换标准之一。TIFF文件自身携带多种有损和无损图像压缩算法,如JPEG压缩算法、游程编码、Zip和LZW(Lempel-Ziv-Welch)无损压缩算法等。TIFF格式设计时充分考虑了扩展性、方便性和可维护性,因此较为复杂,这不仅增加了程序设计的复杂度,也使得文件的读写速度较慢。

使用NI Vision读写TIFF文件与其他图像文件操作方法类似,图5-12显示了读写TIFF文件的程序代码。程序在图5-6所示的代码基础上增加了检测TIFF文件格式的功能,只有所读取的图像文件为TIFF文件时,才将读取的图像数据再次保存为test.tif文件(相当于文件重命名)。IMAQ Write File 2的TIFF格式文件保存实例在封装大多数文件操作细节的前提下,仍保留了调色板和TIFF文件选项(TIFF Option)两个参数,供开发人员对文件保存过程进行控制。

图5-12 TIFF文件逻辑结构