ITK dicom序列读取写入

 

const unsigned int      Dimension = 3;
typedef itk::Image< float, Dimension >      ImageType;
typedef itk::ImageSeriesReader< ImageType >     ReaderType;

dicom序列读取

int getSerialReader(ReaderType::Pointer ** reader,char * path)
{
	typedef itk::GDCMImageIO                        ImageIOType;
	typedef itk::GDCMSeriesFileNames                NamesGeneratorType;
	ImageIOType::Pointer gdcmIO = ImageIOType::New();
	NamesGeneratorType::Pointer namesGenerator = NamesGeneratorType::New();

	namesGenerator->SetInputDirectory(path);    //输入目录
	const ReaderType::FileNamesContainer & filenames =
		namesGenerator->GetInputFileNames();

	ReaderType::Pointer fixReader =  (**reader);// ReaderType::New();
	fixReader->SetImageIO(gdcmIO);
	fixReader->SetFileNames(filenames);

	try
	{
		fixReader->Update();
	}
	catch (itk::ExceptionObject &excp)
	{
		std::cerr << "Exception thrown while writing the image" << std::endl;
		std::cerr << excp << std::endl;
		return EXIT_FAILURE;
	}

	return EXIT_SUCCESS;
}

写入

typedef itk::ImageFileWriter< InputImageType >  Writer1Type;
	Writer1Type::Pointer writer = Writer1Type::New();
	writer->SetFileName("C:/output/lung.dcm");
	writer->SetInput(reader->GetOutput());

	try
	{
		writer->Update();
	}
	catch (itk::ExceptionObject & e)
	{
		std::cerr << "exception in file writer " << std::endl;
		std::cerr << e << std::endl;
		return EXIT_FAILURE;
	}

ITK 翻转

     //结果显示
       typedef itk::FlipImageFilter< InternalImageType > FlipFilterType;
       typedef FlipFilterType::FlipAxesArrayType FlipAxesArrayType;
      FlipFilterType::Pointer filter = FlipFilterType::New();
      FlipAxesArrayType flipArray;
        flipArray[0] =0;
      flipArray[1] =1;
      filter->SetFlipAxes( flipArray );
      filter->SetInput( medianFilter->GetOutput() );

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值