这个示例演示了SetPixel()和GetPixel()方法的使用。这两种方法提供了对图像中包含的像素数据的直接访问。请注意,这两种方法速度相对较慢,不应该在需要高性能访问的情况下使用。图像迭代器是有效访问图像像素数据的合适机制。
像素在图像中的位置由一个唯一的索引来标识。索引是一个整数数组,用于定义像素在图像每个维度上的位置的。
IndexType由图像自动定义,可以使用作用域操作符itk::Index访问。数组的长度将与相关图像的尺寸相匹配。
下面的代码说明了索引变量的声明以及对其每个组件的值的赋值。请注意,没有使用智能指针访问索引。这是因为Index是轻量级对象,不打算在对象之间共享。生产这些小对象的多个副本比使用SmartPointer机制共享它们更有效。
#include "itkImage.h"
int main(int, char* [])
{
using ImageType = itk::Image<unsigned short, 3>;
ImageType::Pointer image = ImageType::New();
//初始化图片区域
const ImageType::SizeType size = { {200,200,200} };// Size along {X,Y,Z}
const ImageType::IndexType start = { {0,0,0} }; // First index on {X,Y,Z}
ImageType::RegionType region;
region.SetSize(size);
region.SetIndex(start);
//像素数据分配