質問

一連のDICOM画像を読んで、ITKを使用して3D画像に変換したいと思います。ドキュメントの例に従います:「Examples/io/dicomseriesreadimagewrite2.cxx」。しかし、私はまだ問題を抱えています、私はいくつかを解決しましたが、私はどんなヒントを聞きたいですか、お願いします!

問題は下線が引かれているコードラインにあり、コードはここのすぐ下にあり、それほど長くはありません。コンパイルされ、変数 'seriesitr'の値は= "1.2.392.200036.9116.2.6.1.48.1214834239.1284941923.424443543.0512512"です。しかし、変数「シリーズエンド」はヌルポインターです!私は何が間違っているのですか? Advancedでご協力いただきありがとうございます!

// Reading a 2D DICOM Series and Writing a Volume 
  ReaderType::Pointer reader = ReaderType::New();

  ImageIOType::Pointer dicomIO = ImageIOType::New();
  reader->SetImageIO( dicomIO );
  NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();
  nameGenerator->SetUseSeriesDetails( true ); 

  std::string folder;
  folder = "C:\\Documents and Settings\\GTTS\\Mis documentos\\Visual Studio 2008\\Projects\\Reg_mono3D\\Reg_mono3D\\DICOM_SERIES\\T\\";
  nameGenerator->SetDirectory(folder);

  const SeriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs();
  SeriesIdContainer::const_iterator seriesItr = seriesUID.begin();
  ***SeriesIdContainer::const_iterator seriesEnd = seriesUID.end();***
  while( seriesItr != seriesEnd )
  {
        std::cout << seriesItr->c_str() << std::endl;
        seriesItr++;
  }

  std::string seriesIdentifier;
  seriesIdentifier = seriesUID.begin()->c_str();
  FileNamesContainer fileNames;
  fileNames = nameGenerator->GetFileNames( seriesIdentifier );

  reader->SetFileNames( fileNames );

  try
  {
        reader->Update();
  }
  catch (itk::ExceptionObject &ex)
  {
        cout << ex << std::endl;
  }
役に立ちましたか?

解決

画像が100%準拠していない可能性はありますか?そこにある多くのツールキットはあまり耐性がありません。また、ベンダーの90%が100%準拠していないようです。 DCMTKツールDCMCONVを介して画像を実行してファイルを「変換」してみます。 DCMCONVが100%準拠した方法でコピーをエクスポートするため、現在と同じ設定でファイルを実行することが多いため、Convertを引用符で使用します。

DCMCONVの情報はこちらをご覧ください: http://support.dcmtk.org/docs/dcmconv.html

意思

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top