1、常用的医学图像格式
2、ITK的数据处理管道结构
ITK中的数据处理对象分为3种类型1)Source类型对象的输出为数据对象,包括各种图像文件读取类
2)Filter类型对象以一个或多个数据对象作为输入,然后输出一个或多个数据对象,包括数据处理算法类
3)Mapper类型对象是管道处理的最后一步,它将最终处理结果存到硬盘
3、ITK图像读写机制
1)用户层面:itkImageFileReader(读) itkImageFileWriter(写)2)内部实现:由内部ImageIO对象具体负责图像文件读写操作,该对象通过对象工厂根据用户输入文件类型生成相应的ImageIO对象
优点
1)使用方便,用户无须关注内部实现细节
2)扩展方便,扩展支持新的图像读取而无须修改用户接口,只需添加相应的工厂类和IO类
ITK图像读写类图:
4、读写实例(完成对jpg图像的读取,并将其写出):
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
int main(int argc, char* argv[])
{
const unsigned int Dimension = 2; //定义图像维数
//typedef unsigned char PixelType; //定义像素类型
typedef itk::RGBPixel< unsigned char > PixelType;
typedef itk::Image< PixelType, 2 > ImageType;
typedef itk::ImageFileReader< ImageType > ReaderType;
typedef itk::ImageFileWriter< ImageType > WriterType;
ReaderType::Pointer reader = ReaderType::New();
WriterType::Pointer writer = WriterType::New();
reader->SetFileName("F:\\DIPcode\\SIMC\\imagesrc\\1.jpg");
writer->SetFileName( "F:\\DIPcode\\SIMC\\imgedir\\2.jpg");
ImageType::Pointer image = reader->GetOutput();
writer->SetInput( image );
// Software Guide : BeginLatex
//
// Finally, execution of the pipeline can be triggered by invoking the
// Update() method in the writer.
//
// Software Guide : EndLatex
// Software Guide : BeginCodeSnippet
writer->Update();
return 0;
}
结果如下: