]> Creatis software - clitk.git/commitdiff
Debug #54
authortbaudier <thomas.baudier@creatis.insa-lyon.fr>
Wed, 4 Oct 2017 11:51:15 +0000 (13:51 +0200)
committertbaudier <thomas.baudier@creatis.insa-lyon.fr>
Wed, 4 Oct 2017 11:51:15 +0000 (13:51 +0200)
common/clitkCommon.cxx
common/clitkCommon.h
tools/clitkDicom2Image.cxx

index 57be29e5297f833d53769818b0aa097cb3d93a6c..d1a14bf3fd44d379470c2daef007133e6079c6cd 100644 (file)
@@ -69,6 +69,20 @@ std::string clitk::GetExtension(const std::string& filename)
 } ////
 //------------------------------------------------------------------
 
+
+//------------------------------------------------------------------
+// Return filename splitting in 1 or 2 parts : directory name (if exists) & filename
+std::vector<std::string> clitk::SplitFilename(const std::string& filename)
+{
+  std::vector<std::string> dirname;
+  std::size_t found = filename.find_last_of("/\\");
+  dirname.push_back(filename.substr(0,found));
+  dirname.push_back(filename.substr(found+1,found));
+  return( dirname );
+} ////
+//------------------------------------------------------------------
+
+
 //------------------------------------------------------------------
 // Display progression
 void clitk::VerboseInProgress(const int nb, const int current, const int percentage)
index d7cd4606d4183fe69f36ad4d6d76b69723faa651..3729584686bdd1d2510d4603000336fe307a0443 100644 (file)
@@ -99,6 +99,9 @@ namespace clitk {
   // Return filename extension
   std::string GetExtension(const std::string& filename);
 
+  // Return filename splitting in 1 or 2 parts : directory name (if exists) & filename
+  std::vector<std::string> SplitFilename(const std::string& filename);
+
   //--------------------------------------------------------------------
   // Convert float, double ... to string
   template<class T> std::string toString(const T & t);
index b1b105d676746bc70817053004cad8e76208cd15..e08f0def68acd476d1731cbbd1a6d722e4c2b441 100644 (file)
@@ -84,7 +84,7 @@ int main(int argc, char * argv[])
       series_number_att.SetFromDataSet(ds);
       series_number = series_number_att.GetValue();
     }
-    
+
     series_numbers.insert(series_number);
     theorigin[series_number] = gdcm::ImageHelper::GetOriginValue(hreader.GetFile());
     theorientation[series_number] = gdcm::ImageHelper::GetDirectionCosinesValue(hreader.GetFile());
@@ -99,7 +99,7 @@ int main(int argc, char * argv[])
                   theorigin[series_number][2]*n3;
     sliceLocations[series_number].push_back(sloc);
     seriesFiles[series_number].push_back(input_files[i]);
-    
+
     gdcm::Attribute<0x28, 0x100> pixel_size;
     pixel_size.SetFromDataSet(ds);
     /* if (pixel_size.GetValue() != 16)
@@ -118,7 +118,7 @@ int main(int argc, char * argv[])
   if (args_info.extract_series_flag) {
     series_number = atoi(header->GetEntryValue(0x20,0x11).c_str());
   }
-  
+
   series_numbers.insert(series_number);
   theorigin[series_number].resize(3);
   theorigin[series_number][0] = header->GetXOrigin();
@@ -200,7 +200,7 @@ int main(int argc, char * argv[])
       std::cerr << reader->GetLastError() << std::endl;
       return 1;
     }
-    
+
     vvImage::Pointer image = reader->GetOutput();
     vtkImageData* vtk_image = image->GetFirstVTKImageData();
     vtkImageChangeInformation* modifier = vtkImageChangeInformation::New();
@@ -226,7 +226,11 @@ int main(int argc, char * argv[])
       outfile = args_info.output_arg;
     else {
       std::ostringstream name;
-      name << *sn << "_" << args_info.output_arg;
+      std::vector<std::string> directory = clitk::SplitFilename(args_info.output_arg);
+      if (directory.size() == 2)
+        name << directory[0] << *sn << "_" << directory[1];
+      else
+        name << *sn << "_" << args_info.output_arg;
       outfile = name.str();
     }
     //Check on transform
@@ -251,9 +255,9 @@ int main(int argc, char * argv[])
     writer->Update();
 
     modifier->Delete();
-    
+
     sn++;
   }
-  
+
   return 0;
 }