]> Creatis software - clitk.git/blobdiff - common/vvImageReader.cxx
Merge branch 'master' of https://github.com/open-vv/vv
[clitk.git] / common / vvImageReader.cxx
index 23c78f155dd9e4c51ddad251cf87c549e6d7b70c..a2fc4e964ab8edeeef1e57cb0f6a4b742c371d44 100644 (file)
@@ -19,6 +19,7 @@
 #define VVIMAGEREADER_CXX
 
 #include <itkImageFileReader.h>
+#include "gdcmImageHelper.h"
 #include "vvImageReader.h"
 #include "vvImageReader.txx"
 #include "clitkTransformUtilities.h"
@@ -32,6 +33,7 @@ vvImageReader::vvImageReader()
   mLastError = "";
   mType = UNDEFINEDIMAGETYPE;
   mSlice = 0;
+  mPatientCoordinateSystem = false;
 }
 //------------------------------------------------------------------------------
 
@@ -49,6 +51,14 @@ void vvImageReader::Update()
 //------------------------------------------------------------------------------
 
 
+//------------------------------------------------------------------------------
+void vvImageReader::SetPatientCoordinateSystem(bool patientCoordinateSystem)
+{
+  mPatientCoordinateSystem = patientCoordinateSystem;
+}
+//------------------------------------------------------------------------------
+
+
 //------------------------------------------------------------------------------
 void vvImageReader::Update(LoadedImageType type)
 {
@@ -57,9 +67,12 @@ void vvImageReader::Update(LoadedImageType type)
     mLastError="Unable to read file.";
   } else {
     reader->SetFileName(mInputFilenames[0]);
+    gdcm::ImageHelper::SetForcePixelSpacing(true);
     reader->ReadImageInformation();
     if (mInputFilenames.size() > 1)
       Update(reader->GetNumberOfDimensions()+1,reader->GetComponentTypeAsString(reader->GetComponentType()),type);
+    else if (reader->GetNumberOfComponents() > 1 && type != VECTORFIELD && type != VECTORFIELDWITHTIME)
+      Update(reader->GetNumberOfDimensions()+1,reader->GetComponentTypeAsString(reader->GetComponentType()),VECTORPIXELIMAGE);
     else
       Update(reader->GetNumberOfDimensions(),reader->GetComponentTypeAsString(reader->GetComponentType()),type);
   }
@@ -188,9 +201,7 @@ void vvImageReader::ReadMatImageTransform()
   f.open(filename.c_str());
   if(!itkMatRead && f.is_open()) {
     itkMatRead = true;
-    std::vector<std::string> l;
-    l.push_back(filename);
-    itkMat = clitk::createMatrixFromElastixFile<3>(l, true);
+    itkMat = clitk::createMatrixFromElastixFile<3>(filename, true);
   }
   f.close();