]> Creatis software - clitk.git/blobdiff - tools/clitkDicom2Image.cxx
Fix init for clitk image formats
[clitk.git] / tools / clitkDicom2Image.cxx
index b1b105d676746bc70817053004cad8e76208cd15..2cced17e0d2da6980f5557ef916802694e8126dc 100644 (file)
@@ -17,6 +17,7 @@
 ===========================================================================**/
 
 // clitk includes
+#include "clitkIO.h"
 #include "clitkDicom2Image_ggo.h"
 #include "clitkCommon.h"
 #include "clitkImageCommon.h"
@@ -38,6 +39,8 @@ int main(int argc, char * argv[])
 {
   // init command line
   GGO(clitkDicom2Image, args_info);
+  CLITK_INIT;
+
   std::vector<std::string> input_files;
   ///if std_input is given, read the input files from stdin
   if (args_info.std_input_given) {
@@ -84,7 +87,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 +102,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 +121,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 +203,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 +229,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 +258,9 @@ int main(int argc, char * argv[])
     writer->Update();
 
     modifier->Delete();
-    
+
     sn++;
   }
-  
+
   return 0;
 }