itk 讀取dcm 或nii.gz數據

關鍵代碼如下,判斷如果是dcm,則轉換爲nii.gz:

	#include "itkGDCMSeriesFileNames.h"

     
    using NamesGeneratorType = itk::GDCMSeriesFileNames;
	NamesGeneratorType::Pointer nameGenarator = NamesGeneratorType::New();
	using FilenamesContainer = std::vector<std::string>;
    using ImageIOTypeDCM = itk::GDCMImageIO;
	using ImageIOTypeNII = itk::NiftiImageIO;
    using ReaderTypeNII = itk::ImageFileReader< Short3DImageType  >;
	using ReaderTypeDCM = itk::ImageSeriesReader<Short3DImageType>;

     string sPatientFileDir = "";
	
	 sPatientFileDir = FolderNames.at(i) + pPatientFileName;

	 nameGenarator->SetInputDirectory(FolderNames.at(i));
	 nameGenarator->Update();
	 using FilenamesContainer = std::vector<std::string>;
	 FilenamesContainer filenames = nameGenarator->GetInputFileNames();

	if ((_access(sPatientFileDir.data(), 0) != 0) && filenames.size()==0)//如果沒有指定文件名的nii.gz並且檢測到的dcm文件數爲0,則判斷不存在。
	{
		cout << sPatientFileDir << "not exist";
		continue;
	}
	bool bIsDcm = false;
	if (filenames.size() != 0)
	{
		bIsDcm = true;
	}
   

   Short3DImageType::Pointer OriImg;
	if (bIsDCM)
	{
		ReaderTypeDCM::Pointer Reader = ReaderTypeDCM::New();
		ImageIOTypeDCM::Pointer gNiftiImageIORead = ImageIOTypeDCM::New();
		Reader->SetImageIO(gNiftiImageIORead);
		Reader->SetFileNames(filenames);
		Reader->Update();
		OriImg = Reader->GetOutput();

		WriterType::Pointer WriterOri = WriterType::New();
		ImageIOTypeNII::Pointer NiftiImageIOOri = ImageIOTypeNII::New();
		WriterOri->SetImageIO(NiftiImageIOOri);
		WriterOri->SetInput(OriImg);
		string filepath = InputFileName;
		string InputFullFileName = filepath + "first_baseline_NCCT.nii.gz";
		WriterOri->SetFileName(InputFullFileName);
		WriterOri->Update();
	}
	else
	{
		ReaderTypeNII::Pointer Reader = ReaderTypeNII::New();
		Reader->SetFileName(InputFileName);
		ImageIOTypeNII::Pointer gNiftiImageIORead = ImageIOTypeNII::New();
		Reader->SetImageIO(gNiftiImageIORead);
		Reader->Update();
		OriImg = Reader->GetOutput();
		
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章