错误"间距"和"起源"在ITK中的DICOM系列

时间:2014-09-10 09:44:55

标签: dicom itk

当我在itk中阅读带有系列阅读器的dicom系列时,

我总是发现原点 = [0 0 0]和间距 = [1 1 1],对于所有不同的数据集都相同

*主要功能: -

    void main()
    {
        reader = READ_DCM(Input_DCM_Paths[0]);
        cout<<" Reading Done!!"<<endl;
        cout<< " Origin: " <<reader->GetOutput()->GetOrigin()<< endl;
        cout<< " Spacing: " <<reader->GetOutput()->GetSpacing()<< endl;
    }

*读者功能: -

    SeriesReaderType::Pointer READ_DCM (std::string InputFolder)
    {
      SeriesReaderType::Pointer seriesReader = SeriesReaderType::New();
      seriesReader->SetImageIO(itk::GDCMImageIO::New());
      itk::GDCMSeriesFileNames::Pointer nameGenerator = itk::GDCMSeriesFileNames::New();
      nameGenerator->SetUseSeriesDetails(true);
      nameGenerator->SetDirectory(InputFolder);
      std::string seriesID = nameGenerator->GetSeriesUIDs().begin()->c_str();
      seriesReader->SetFileNames(nameGenerator->GetFileNames(seriesID));
      seriesReader->Update();
      return seriesReader;
    }

* itk中的第一个系列输出: -

enter image description here

* matlab中的第一个系列输出: -

enter image description here

我的'系列读者'代码有什么用? 我跟着this example中的“阅读部分”。

2 个答案:

答案 0 :(得分:0)

我有同样的问题,我使用以下类似的代码来读取dicom系列,但切片之间的间距输出有时是正确的但不总是:

// 1) Read the input series

typedef itk::GDCMImageIO ImageIOType;
typedef itk::GDCMSeriesFileNames InputNamesGeneratorType;

ImageIOType::Pointer gdcmIO = ImageIOType::New();
InputNamesGeneratorType::Pointer inputNames=InputNamesGeneratorType::New();
inputNames->SetInputDirectory( dirPath );
inputNames->AddSeriesRestriction("0020|0013");

//然后我选择一个系列标识符并将其传递给阅读器

typedef itk::ImageSeriesReader< CTImageType > ReaderType;
ReaderType::Pointer reader = ReaderType::New(); ;
reader->SetImageIO( gdcmIO );
reader->SetFileNames(  inputNames->GetFileNames(  seriesIdentifier.c_str() ));
reader->UpdateOutputInformation();

---&GT;&GT;&GT; reader-&gt; GetOutput() - &gt; GetSpacing()[2]总是不正确!!!

答案 1 :(得分:0)

ITK / SimpleITK假设当您提供一系列图像时,文件的顺序与切片的顺序相同。对于许多集合,情况并非如此,您必须根据Slice Location标记(或.GetOrigin)预先分配文件(python here的更多详细信息)。