X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkDicomRTStruct2Image.cxx;h=3790ab7b3100e335da027148e0d797d2ba20f59a;hb=5578995d9a82792833333eeb3dd5c8ecac967293;hp=228ca0b0cc33480946f3cd5bb33bf62cc94582c6;hpb=d90dd976c7ddbc78a397575f049a49a47cb031bb;p=clitk.git diff --git a/tools/clitkDicomRTStruct2Image.cxx b/tools/clitkDicomRTStruct2Image.cxx index 228ca0b..3790ab7 100644 --- a/tools/clitkDicomRTStruct2Image.cxx +++ b/tools/clitkDicomRTStruct2Image.cxx @@ -20,12 +20,14 @@ #include "clitkDicomRTStruct2ImageFilter.h" #include "clitkDicomRT_StructureSet.h" #include "clitkDicomRTStruct2Image_ggo.h" +#include "clitkIO.h" //-------------------------------------------------------------------- int main(int argc, char * argv[]) { // Init command line GGO(clitkDicomRTStruct2Image, args_info); + CLITK_INIT; // Read and display information clitk::DicomRT_StructureSet::Pointer s = clitk::DicomRT_StructureSet::New(); @@ -38,12 +40,88 @@ int main(int argc, char * argv[]) { clitk::DicomRTStruct2ImageFilter filter; filter.SetCropMaskEnabled(args_info.crop_flag); filter.SetImageFilename(args_info.image_arg); // Used to get spacing + origin - if (args_info.roi_arg != -1) { - filter.SetROI(s->GetROI(args_info.roi_arg)); + if (args_info.vtk_flag) { + filter.SetWriteMesh(true); + } + if (args_info.roiName_given) { + filter.SetROI(s->GetROIFromROIName(args_info.roiName_arg)); + filter.SetOutputImageFilename(args_info.output_arg); + filter.Update(); + } + else if (args_info.roi_given && args_info.roi_arg != -1) { + filter.SetROI(s->GetROIFromROINumber(args_info.roi_arg)); filter.SetOutputImageFilename(args_info.output_arg); - filter.Update(); + filter.Update(); } else { + clitk::DicomRT_StructureSet::ROIMapContainer* rois; + if (args_info.roiNameSubstr_given) + rois = s->GetROIsFromROINameSubstr(args_info.roiNameSubstr_arg); + else + rois = &s->GetROIs(); + + clitk::DicomRT_StructureSet::ROIConstIteratorType iter; + if (rois) { + for(iter = rois->begin(); iter != rois->end(); iter++) { + clitk::DicomRT_ROI::Pointer roi = iter->second; + clitk::DicomRTStruct2ImageFilter filter; + std::string name = roi->GetName(); + int num = roi->GetROINumber(); + filter.SetROI(roi); + filter.SetCropMaskEnabled(args_info.crop_flag); + filter.SetImageFilename(args_info.image_arg); // Used to get spacing + origin + if (args_info.vtk_flag) { + filter.SetWriteMesh(true); + } + name.erase(remove_if(name.begin(), name.end(), isspace), name.end()); + std::string n; + if (args_info.mha_flag) { + n = std::string(args_info.output_arg).append + (clitk::toString(num)).append + ("_").append + (name).append + (".mha"); + } + else { + n = std::string(args_info.output_arg).append + (clitk::toString(num)).append + ("_").append + (name).append + (".mhd"); + } + if (args_info.verbose_flag) { + std::cout << num << " " << roi->GetName() << " num=" << num << " : " << n << std::endl; + } + filter.SetOutputImageFilename(n); + filter.Update(); + } + } + } +// else { +// clitk::DicomRT_StructureSet::ROIConstIteratorType iter; +// for(iter = s->GetROIs().begin(); iter != s->GetROIs().end(); iter++) { +// clitk::DicomRT_ROI::Pointer roi = iter->second; +// // Create the filter +// clitk::DicomRTStruct2ImageFilter filter; +// filter.SetCropMaskEnabled(args_info.crop_flag); +// filter.SetImageFilename(args_info.image_arg); // Used to get spacing + origin +// std::string name = roi->GetName(); +// int num = roi->GetROINumber(); +// filter.SetROI(roi); +// name.erase(remove_if(name.begin(), name.end(), isspace), name.end()); +// std::string n = std::string(args_info.output_arg).append +// (clitk::toString(num)).append +// ("_").append +// (name).append +// (".mhd"); +// if (args_info.verbose_flag) { +// std::cout << num << " " << roi->GetName() << " num=" << num << " : " << n << std::endl; +// } +// filter.SetOutputImageFilename(n); +// filter.Update(); +// } + + /* for(unsigned int i=0; iGetListOfROI().size(); i++) { clitk::DicomRTStruct2ImageFilter filter; filter.SetCropMaskEnabled(args_info.crop_flag); @@ -62,8 +140,8 @@ int main(int argc, char * argv[]) { } filter.SetOutputImageFilename(n); filter.Update(); - } - } + }*/ + //} // This is the end my friend return 0;