1.读写DICOM序列
将一系列DICOM数据读取形成三维体数据,经过所需的处理之后再将其写回成二维DICOM数据,其中需要GDCMImageIO作为DICOM格式的ImageIO。
读写过程如下:
//IO相关
#include "itkGDCMImageIO.h"
#include "itkGDCMSeriesFileNames.h"
#include "itkImageSeriesReader.h"
#include "itkImageSeriesWriter.h"
int main(int argc, char *argv[])
{
typedef float InternalPixelType;
const unsigned int Dimension = 3;//输入为三维
typedef itk::Image< InternalPixelType, Dimension > InternalImageType;
typedef float OutputPixelType;
const unsigned int OutputDimension = 2;//输出为二维
typedef itk::Image< OutputPixelType, OutputDimension > OutputImageType;
typedef itk::ImageSeriesReader< InternalImageType > ReaderType;
typedef itk::ImageSeriesWriter< InternalImageType,OutputImageType > WriterType;//自动在输入和输出之间转换
ReaderType::Pointer reader = ReaderType::New();
WriterType::Pointer writer = WriterType::New();
//DICOM数据的ImageIO
typedef itk::GDCMImageIO ImageIOType;
ImageIOType::Pointer gdcmIO = ImageIOType::New();
//文件生成器
typedef itk::GDCMSeriesFileNames NamesGeneratorType;
NamesGeneratorType::Pointer namesGenerator = NamesGeneratorType::New();
namesGenerator->SetInputDirectory("D:/VTKCode/Data/Threshold");
//保存文件名
const ReaderType::FileNamesContainer & filenames =
na