]> Creatis software - clitk.git/blobdiff - vv/vvToolImageArithm.cxx
several 4D sequences allowed resulting in several 4D mhd files
[clitk.git] / vv / vvToolImageArithm.cxx
index ad6343ed15c288e2ec55afab74b96a9d2157e8d5..f4eb0436904621632cdfae1919eaea3c6002b9a8 100644 (file)
@@ -82,7 +82,6 @@ void vvToolImageArithm::InputIsSelected(vvSlicerManager * l)
 {
   mInput1 = l;
   mTwoInputs = false;
-  // DD("Single input");
   mGroupBoxTwoInputs->setEnabled(false);
   mGroupBoxOneInput->setEnabled(true);
 }
@@ -92,7 +91,6 @@ void vvToolImageArithm::InputIsSelected(vvSlicerManager * l)
 //------------------------------------------------------------------------------
 void vvToolImageArithm::GetArgsInfoFromGUI()
 {
-  //  DD("GetArgsInfoFromGUI");
   mArgsInfo.input1_given = false;
   if (mTwoInputs) {
     mArgsInfo.input2_given = true;
@@ -143,19 +141,27 @@ void vvToolImageArithm::apply()
     inputs.push_back(mInput2->GetImage());
 
     // Check input type
-    if (inputs[0]->GetScalarTypeAsString() != inputs[1]->GetScalarTypeAsString()) {
+    if (inputs[0]->GetScalarTypeAsITKString() != inputs[1]->GetScalarTypeAsITKString()) {
       std::cerr << "Sorry inputs should have the same pixeltype." << std::endl;
-      std::cerr << "Input1 = " << inputs[0]->GetScalarTypeAsString() << std::endl;
-      std::cerr << "Input2 = " << inputs[1]->GetScalarTypeAsString() << std::endl;
+      std::cerr << "Input1 = " << inputs[0]->GetScalarTypeAsITKString() << std::endl;
+      std::cerr << "Input2 = " << inputs[1]->GetScalarTypeAsITKString() << std::endl;
       QApplication::restoreOverrideCursor();
-      QMessageBox::information(this, "Wrong image type","Sorry, could not perform operation. Please select inputs with same pixe type.");
+      QMessageBox::information(this, "Wrong image type","Sorry, could not perform operation. Please select inputs with same pixel type.");
+      close();
+      return;
+    }
+    
+    // Check size
+    if (!mInput1->GetImage()->HaveSameSizeAndSpacingThan(mInput2->GetImage())) {
+      std::cerr << "Sorry inputs should have the same size and spacing." << std::endl;
+      QApplication::restoreOverrideCursor();
+      QMessageBox::information(this, "Wrong images size","Sorry, could not perform operation. Please select inputs with same size and spacing.");
       close();
       return;
     }
   } else {
     // Input
     inputs.push_back(mInput1->GetImage());
-    DD("Single input");
   }
 
   // Main filter