实例15 MHA格式文件进行带滤波三维的梯度强度提取
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkRescaleIntensityImageFilter.h"
#include "itkGradientMagnitudeRecursiveGaussianImageFilter.h"//带滤波梯度强度的头文件
int main( int argc, char * argv[] )
{
/*if( argc < 4 )
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0] << " inputImageFile outputImageFile sigma" << std::endl;
return EXIT_FAILURE;
}*/
//类型必须基于输入和输出图像的像素进行实例化
typedef float InputPixelType;
typedef float OutputPixelType;
//使用它们就可以对输入、输出图像进行实例化
typedef itk::Image< InputPixelType, 3 > InputImageType;
typedef itk::Image< OutputPixelType, 3 > OutputImageType;
//现在同时使用输入和输出图像类型来实例化滤波器类型
typedef itk::ImageFileReader< InputImageType > ReaderType;
typedef itk::GradientMagnitudeRecursiveGaussianImageFilter<
InputImageType, OutputImageType > FilterType;
//通过调用 New( ) 方式来创建一个滤波器对象并将结果指向一个 itk::SmartPointer
ReaderType::Pointer reader = ReaderType::New();
//输入图像cuiti_256.mha
reader->SetFileName("cuiti_4.mha");//
FilterType::Pointer filter = FilterType::New();
//输入图像可以从另一个滤波器的输出得到。这里,源自于一个图像 reader 来得到
filter->SetInput( reader->GetOutput() );
//对高斯滤波核的标准差进行赋值
const double sigma = atof("1");
//现在设置高斯滤波核的标准差
filter->SetSigma(sigma);
//最后,通过调用 Update( ) 方式来执行滤波器
filter->Update();
typedef unsigned char WritePixelType;
typedef itk::Image< WritePixelType, 3 > WriteImageType;
typedef itk::RescaleIntensityImageFilter<
OutputImageType, WriteImageType > RescaleFilterType;
RescaleFilterType::Pointer rescaler = RescaleFilterType::New();
rescaler->SetOutputMinimum( 0 );
rescaler->SetOutputMaximum( 255 );
typedef itk::ImageFileWriter< WriteImageType > WriterType;
WriterType::Pointer writer = WriterType::New();
//输出强度图像
writer->SetFileName("GradientMagnitude_4.mha");
/*如果这个滤波器的输出已经连接到流水线中的其他滤波器,更新任何下游的滤波器将同
样触发这个滤波器的一个更新。例如,梯度强度滤波器可能连接到一个图像 writer*/
rescaler->SetInput( filter->GetOutput() );
writer->SetInput( rescaler->GetOutput() );
writer->Update();
return EXIT_SUCCESS;
}
输入三维图像(cuiti_4.mha):
切片1 切片2 切片3 切片4
输出三维梯度强度图像(GradientMagnitude_4.mha):
切片1 切片2 切片3 切片4
ITK系列目录:
注:例程配套素材见系列目录