我想讀取一系列DICOM圖像以使用ITK將它們轉換爲3D圖像。我遵循文檔中的示例:「Examples/IO/DicomSeriesReadImageWrite2.cxx」。但我仍然有問題,我解決了一些問題,但我想聽到任何提示,請!不能正確讀取DICOM圖像系列與ITK
問題出在代碼行下劃線,代碼就在這裏,並沒有那麼長。它編譯,變量'seriesItr'的值=「1.2.392.200036.9116.2.6.1.48.1214834239.1284941923.42443543.0512512」。但變量'seriesEnd'是一個空指針!我究竟做錯了什麼?感謝您的高級幫助!
// 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;
}
有什麼問題的話'seriesEnd'是'NULL'? – Asha
我有82個dicom圖像,我想閱讀整個系列...然後'while'循環必須通過整個圖像,而不僅僅是第一個圖像的第一部分 – Antonio
我正在運行此代碼,它的工作原理精細。你需要雙倍分隔符嗎?我正在使用/我也有nameGenerator-> AddSeriesRestriction(「0008 | 0021」); 之後的 – 2011-11-30 04:11:38