itk读取mha写vtk
#include "itkImage.h"
#include "itkDICOMImageIO2.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
using namespace std;
typedef short PixelType;
typedef itk::Image<PixelType,> ImageType;
int main( int argc, char* argv[] )
{
cout<<"-------------Read----------"<<endl;
//itk::DICOMImageIO2::Pointer dicomIO = itk::DICOMImageIO2::New();
//itk::DICOMSeriesFileNames::Pointer nameGenerator = itk::DICOMSeriesFileNames::New();
//nameGenerator->SetDirectory("D:\\MedImg\\old\\SE0");
nameGenerator->SetDirectory("D:\\MedImg\\111\\0603030007\\ST0\\SE0");
//typedef std::vector<std::string> fileNamesContainer;
//fileNamesContainer fileNames;
//fileNames = nameGenerator->GetFileNames();
//typedef itk::ImageSeriesReader<ImageType> ReaderType;
//ReaderType::Pointer pReader = ReaderType::New();
//pReader->SetFileNames( fileNames );
//pReader->SetImageIO( dicomIO );
//try
//{
// pReader->Update();
//}
//catch (itk::ExceptionObject &ex)
//{
// std::cout << ex << std::endl;
// return 0;
//}
typedef itk::ImageFileReader< ImageType > ReaderType;
ReaderType::Pointer pReader = ReaderType::New();
const char * inputFilename = "D:\\1.mha";
pReader->SetFileName( inputFilename );
try
{
pReader->Update();
}
catch (itk::ExceptionObject &ex)
{
std::cout << ex << std::endl;
return ;
}
//----- 灰度图像----------------------------------------------------------------
typedef itk::ImageFileWriter< ImageType > WriterType;
WriterType::Pointer writer_heart = WriterType::New();
std::cout << "Writing the image as " << std::endl << std::endl;
std::cout << "D:\\se6\\ct4\\0.vtk" << std::endl << std::endl;
writer_heart->SetFileName( "D:\\1.vtk" );
writer_heart->SetInput( pReader->GetOutput() );
try
{
writer_heart->Update();
}
catch (itk::ExceptionObject &ex)
{
std::cout << ex;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}