No leer la serie de imágenes DICOM correctamente con ITK
Pregunta
Quiero leer una serie de imagen DICOM para convertirlos en una imagen 3D usando ITK. Sigo el ejemplo en la documentación: "Ejemplos/io/dicomseriesreadiMageWrite2.cxx". Pero todavía tengo problemas, resolví algunos, pero me gustaría escuchar cualquier consejo, ¡por favor!
El problema está en la línea de código subrayado, el código está justo debajo y no es tan largo. Se compila, y la variable 'SeriesITR' tiene el valor = "1.2.392.200036.9116.2.6.1.48.1214834239.1284941923.42443543.0512512". ¡Pero la variable 'Seriesend' es un puntero nulo! ¿Qué estoy haciendo mal? ¡Gracias por su ayuda en 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;
}
Solución
¿Es posible que las imágenes no cumplan el 100%? Muchos kits de herramientas no son muy tolerantes, y parece que el 90% de los proveedores no cumplen el 100%. Intentaría ejecutar las imágenes a través de la herramienta dcmtk dcmconv para "convertir" los archivos. Utilizo convertir en cotizaciones porque a menudo ejecuto archivos a través de él con la misma configuración que tienen actualmente porque DCMCONV exportará las copias de una manera 100% compatible.
La información sobre dcmconv se puede encontrar aquí: http://support.dcmtk.org/docs/dcmconv.html
Voluntad