不使用ITK正确阅读DICOM图像系列
题
我想阅读一系列DICOM图像,以使用ITK将它们转换为3D图像。我按照文档中的示例遵循:“示例/io/dicomseriesReadimageWrite2.cxx”。但是我仍然有问题,我解决了一些问题,但是我想听听任何技巧!
问题是在强调的代码行中,代码在此处的下方,并且不长。它编译,变量'seriperitr'具有值=“ 1.2.392.200036.9116.2.6.1.48.1214834239.1284941923.4244443543.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%兼容的方式导出副本。
有关DCMCONV的信息可以在此处找到: http://support.dcmtk.org/docs/dcmconv.html
将要
不隶属于 StackOverflow