ITK 中有两种基本的数据表示类型:图像和网格。这个功能是在类
Image 和 Mesh
中实现的,这两个类都是 itk::DataObject
的子类。在
ITK 中,数据对象是那些分送系统和参与数据流管道的类。
itk::Image 表示一个
n
维、规则的样品数据。采样方向平行于任一个坐标轴,采样起点、像素间隔和每个方向上的样品数量(如图像维数)是特定的。这个样品或像素在 ITK
中的类型是任意的,一个模板参数 TPixel
指定了模板实例的类型(当对图像类实例化时图像的维也必须指定)。如果要在所有情况下编译代码(例如使用这些操作通过特定的滤波器来进行处理),关键就是像素的类型必须支持这些操作(如加法和减法)。在实际中 ITK
用户通常使用 C++
中的简单类型(如整型、浮点型)或预定义像素类型而很少创建新的像素类型。
ITK 中关于图像的一个重要概念是区域
regions
,它是一个矩形的、连续的图像块。区域用来指定图像中处理的部分,例如多线程或保留在内存中的部分。在 ITK
中有三种常用的区域类型:
(1)LargestPossibleRegion——全部图像。
(2)BufferedRegion——保留在内存中的图像部分。
(3)RequestedRegion——对图像操作时滤波器或其他类需要的部分。