学习前言:近期接触到ITK ,市面上资料太少,只有靠自己。本信息来源于ITK官网的软件指导理解,记录方便后期学习。
4.1 图片(Image )
4.1.7 从缓存区中导入图像数据 itk::ImportImageFilter
本节课程源代码可以在Image5.cxx 中找到。
这个例子演示了如何将数据导入到itk::Image类中,许多系统都使用在一块连续的内存来缓存图像像素数据(Image Pixel data),这对于与其他软件系统接口对接尤其有用。当前示例假设这样,并将缓冲区输入到itk::ImportImageFilter中,从而生成图像作为输出。
在这里,我们在本地分配的缓冲区中创建一个具有中心球体的合成图像,并将这个内存块传递给ImportImageFilter.
运行此例子时,用户必须提供输出文件的名称作为命令行参数
#include "itkImage.h"
#include "itkImportImageFilter.h"
下一步,选择数据类型作为图像像素,我们假定外部内存块使用相同的数据类型来表示像素
//取别名,像素数据类型为char,3维
using ImportFilterType = itk::ImportImageFilter<PixelType, Dimension>;
//实例化过滤器对象importFilter,Pointer为智能指针,引用为0自动删除
ImportFilterType::Pointer importFilter = ImportFilterType::New();
过滤器中,需要用户需指定输出图像的大小,图像大小应该与本地分配的缓冲区中可用的像素数量完全匹配。指定图像大小需要用到Image size(图像大小) -> Region(区域)-> 原点+大小