X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkDicomRTStruct2Image.cxx;fp=tools%2FclitkDicomRTStruct2Image.cxx;h=b713d9412d20897bea105aa16bcf596c941bfd72;hb=21cad80313d6f22daabe815127b7c31b907982f7;hp=88d480d1f625d9016beff80ec72e256191a22efd;hpb=db5af660ffa5e1628c7d53f3018991a8cfa59217;p=clitk.git diff --git a/tools/clitkDicomRTStruct2Image.cxx b/tools/clitkDicomRTStruct2Image.cxx index 88d480d..b713d94 100644 --- a/tools/clitkDicomRTStruct2Image.cxx +++ b/tools/clitkDicomRTStruct2Image.cxx @@ -38,34 +38,70 @@ 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) { + 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(); } 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; - 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; + 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 + 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(); } - 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++) { @@ -87,7 +123,7 @@ int main(int argc, char * argv[]) { filter.SetOutputImageFilename(n); filter.Update(); }*/ - } + //} // This is the end my friend return 0;