]> Creatis software - clitk.git/blobdiff - vv/vvImageReader.cxx
Removed vc2010 warnings
[clitk.git] / vv / vvImageReader.cxx
index 8bbdf251b57355a40b466065e913596e6ec0d7b9..1f33fc72b2abe997ff119adf7f90b156edc7b0e7 100644 (file)
@@ -124,28 +124,34 @@ void vvImageReader::SetInputFilenames(const std::vector<std::string> & filenames
 //Read transformation in NKI format (Xdr, transposed, cm)
 void vvImageReader::ReadNkiImageTransform()
 {
-  bool bRead=true;
-  typedef itk::ImageFileReader< itk::Image< double, 2 > > MatrixReaderType;
-  MatrixReaderType::Pointer readerTransfo = MatrixReaderType::New();
-  readerTransfo->SetFileName(mInputFilenames[0]+".MACHINEORIENTATION");
-  try {
-    readerTransfo->Update();
-  } catch( itk::ExceptionObject & err ) {
-    bRead=false;
-  }
-
-  if (bRead) {
-    //Transpose matrix (NKI format)
-    for(int j=0; j<4; j++)
-      for(int i=0; i<4; i++)
-        mImage->GetTransform()->GetMatrix()->SetElement(j,i,readerTransfo->GetOutput()->GetBufferPointer()[4*i+j]);
-
-    //From cm to mm
-    for(int i=0; i<3; i++)
-      mImage->GetTransform()->GetMatrix()->SetElement(i,3,10*mImage->GetTransform()->GetMatrix()->GetElement(i,3));
-
-    mImage->GetTransform()->Inverse();
-    mImage->UpdateReslice();
+  bool bRead=false;
+  std::string filename = mInputFilenames[0]+".MACHINEORIENTATION";
+  if(itksys::SystemTools::FileExists(filename.c_str())){
+    typedef itk::ImageFileReader< itk::Image< double, 2 > > MatrixReaderType;
+    MatrixReaderType::Pointer readerTransfo = MatrixReaderType::New();
+    readerTransfo->SetFileName(filename);
+    try {
+      bRead = true;
+      readerTransfo->Update();
+    } catch( itk::ExceptionObject & err ) {
+      bRead=false;
+      std::cerr << "Cannot read " << filename << std::endl
+                << "The error is: " << err << std::endl;
+    }
+
+    if (bRead) {
+      //Transpose matrix (NKI format)
+      for(int j=0; j<4; j++)
+        for(int i=0; i<4; i++)
+          mImage->GetTransform()->GetMatrix()->SetElement(j,i,readerTransfo->GetOutput()->GetBufferPointer()[4*i+j]);
+
+      //From cm to mm
+      for(int i=0; i<3; i++)
+        mImage->GetTransform()->GetMatrix()->SetElement(i,3,10*mImage->GetTransform()->GetMatrix()->GetElement(i,3));
+
+      mImage->GetTransform()->Inverse();
+      mImage->UpdateReslice();
+    }
   }
 }
 //------------------------------------------------------------------------------