]> Creatis software - clitk.git/commitdiff
some small correction
authordsarrut <dsarrut>
Mon, 12 Jul 2010 06:56:50 +0000 (06:56 +0000)
committerdsarrut <dsarrut>
Mon, 12 Jul 2010 06:56:50 +0000 (06:56 +0000)
vv/CMakeLists.txt
vv/vv.cxx
vv/vvLabelImageLoaderWidget.cxx
vv/vvLabelImageLoaderWidget.h
vv/vvMainWindow.cxx
vv/vvProgressDialog.h
vv/vvToolExtractLung.cxx
vv/vvToolInputSelectorWidget.cxx
vv/vvToolPlastimatch.cxx
vv/vvToolRigidReg.cxx
vv/vvToolWidgetBase.cxx

index 9b1a0052e13520438f9fcfd1fbdc9f303fa3e56f..a32e582c36e6de283165fb12348d69658fe28b94 100644 (file)
@@ -21,6 +21,7 @@ SET(vv_SRCS
   vvSurfaceViewerDialog.cxx
   vvMainWindowBase.cxx
   vvMainWindow.cxx
+  vvProgressDialog.cxx
   vvDeformationDialog.cxx
   vvImageWarp.cxx
   vvDeformableRegistration.cxx
@@ -46,6 +47,7 @@ SET(vv_SRCS
   vvMidPosition.cxx
   vvImageMapToWLColors.cxx
   vvIntensityValueSlider.cxx
+  vvThreadedFilter.cxx
   vvToolManager.cxx
   vvToolCreatorBase.cxx
   vvToolWidgetBase.cxx
@@ -96,6 +98,7 @@ QT4_WRAP_CPP(vv_SRCS
   vvSlicerManager.h
   vvStructSelector.h
   vvIntensityValueSlider.h
+  vvThreadedFilter.h
   vvToolCreatorBase.h
 #  vvToolFoo.h
 #  vvToolFooWithWidgetBase.h
@@ -135,7 +138,7 @@ QT4_WRAP_UI(vv_UI_CXX
   qt_ui/vvStructSelector.ui
   qt_ui/vvDummyWindow.ui #For testing
   qt_ui/vvIntensityValueSlider.ui
-  qt_ui/vvToolSimpleInputSelectorWidget.ui
+#  qt_ui/vvToolSimpleInputSelectorWidget.ui
   qt_ui/vvToolInputSelectorWidget.ui
   qt_ui/vvToolWidgetBase.ui
 #  qt_ui/vvToolWidgetWithStepsBase.ui
index dc9e8b74f69463544b249eaca501e4e02cdaf722..b30e97c47148fb0904f83e4c8f8f185869a18206 100644 (file)
--- a/vv/vv.cxx
+++ b/vv/vv.cxx
@@ -55,6 +55,7 @@ int main( int argc, char** argv )
 
   std::vector<std::string> filenames;
   std::vector<std::pair<int ,std::string> > overlays;
+  std::vector<std::pair<int ,std::string> > rois;
   std::vector<std::pair<int ,std::string> > vector_fields;
   if (argc >1) {
     for (int i = 1; i < argc; i++) {
@@ -63,12 +64,24 @@ int main( int argc, char** argv )
         assert(filenames.size()>=1);
         vector_fields.push_back(std::make_pair(filenames.size()-1,argv[i+1]));
         i++; //skip vf name
-      } else if (temp=="--overlay") {
-        assert(filenames.size()>=1);
-        overlays.push_back(std::make_pair(filenames.size()-1,argv[i+1]));
-        i++; //skip overlay name
-      } else
-        filenames.push_back(temp);
+      } 
+      else {
+       if (temp=="--overlay") {
+         assert(filenames.size()>=1);
+         overlays.push_back(std::make_pair(filenames.size()-1,argv[i+1]));
+         i++; //skip overlay name
+       } 
+       else {
+         if (temp=="--roi") {
+           assert(filenames.size()>=1);
+           rois.push_back(std::make_pair(filenames.size()-1,argv[i+1]));
+           i++; //skip overlay name
+         } 
+         else {
+           filenames.push_back(temp);
+         }
+       }
+      }
     }
     window.LoadImages(filenames,IMAGE);
     for (std::vector<std::pair<int ,std::string> >::iterator i=overlays.begin();
@@ -77,6 +90,12 @@ int main( int argc, char** argv )
     for (std::vector<std::pair<int ,std::string> >::iterator i=vector_fields.begin();
          i!=vector_fields.end(); i++)
       window.AddField((*i).second.c_str(), (*i).first);
+    for (std::vector<std::pair<int ,std::string> >::iterator i=rois.begin();
+         i!=rois.end(); i++) {
+      DD((*i).second.c_str());
+      DD((*i).first);
+      // window.AddROI((*i).second.c_str(), (*i).first);
+    }
 
   }
 
index b10f00ffb813e0eb2ebc2447fb85cec6a2b81af5..a4b7e4158a22f2828646bb4c2a801718f3addb9e 100644 (file)
@@ -15,6 +15,7 @@
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 ======================================================================-====*/
+
 #ifndef VVTOOLINPUTSELECTORWIDGET_CXX
 #define VVTOOLINPUTSELECTORWIDGET_CXX
 
@@ -59,6 +60,14 @@ double vvLabelImageLoaderWidget::GetBackgroundValue()
 //------------------------------------------------------------------------------
 
 
+//------------------------------------------------------------------------------
+void vvLabelImageLoaderWidget::SetText(QString t)
+{
+  mOpenLabel->setText(t);
+}
+//------------------------------------------------------------------------------
+
+
 //------------------------------------------------------------------------------
 void vvLabelImageLoaderWidget::OpenImage()
 {
index 1e0d25b0bca687787f19e83ebfeb94bee40faad3..33b85eb1d9654f6c190b8a826b7a45883034d41f 100644 (file)
@@ -15,6 +15,7 @@
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 ======================================================================-====*/
+
 #ifndef VVLABELIMAGELOADERWIDGET_H
 #define VVLABELIMAGELOADERWIDGET_H
 
@@ -38,6 +39,7 @@ class vvLabelImageLoaderWidget: public QWidget, private Ui::vvLabelImageLoaderWi
 
   vvImage::Pointer GetImage();
   double GetBackgroundValue();
+  void SetText(QString t);
   
 signals:
   void accepted();
index 1948e791eed57439f08e4d428ea467281e01dcf1..bf56a35ca8b24be92af56b06e9b0fe1dab30249d 100644 (file)
@@ -754,7 +754,7 @@ void vvMainWindow::LoadImages(std::vector<std::string> files, LoadedImageType fi
   //open images as 1 or multiples
   for (int i = 0; i < fileSize; i++) {
 
-    progress.Update("Opening " + files[i]);
+    progress.SetText("Opening " + files[i]);
     progress.SetProgress(i,fileSize);
     qApp->processEvents();
 
index 7742773e72cf89a7595c0cab0e7efe687e6b9e0d..99060412343c8daad4629d05a20f89f33283ea25 100644 (file)
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
   ======================================================================-====*/
-#ifndef vvProgressDialog_h
-#define vvProgressDialog_h
+
+#ifndef VVPROGRESSDIALOG_H
+#define VVPROGRESSDIALOG_H
+
+// vv
 #include "ui_vvProgressDialog.h"
-#include <string>
 
-class vvProgressDialog : public QDialog, private Ui::vvProgressDialog
+class vvProgressDialog : 
+  public QDialog, 
+  private Ui::vvProgressDialog
 {
   Q_OBJECT
 
   public:
-  vvProgressDialog(std::string message,bool show_progress=false) {
-    setupUi(this);
-    textLabel->setText(message.c_str());
-    if (show_progress) 
-      progressBar->show();
-    else 
-      progressBar->hide();
-    this->show();
-  }
-  void Update(std::string message)
-  {
-    textLabel->setText(message.c_str());
-  }
-  void SetProgress(unsigned int current,unsigned int max)
-  {
-    progressBar->setMaximum(max);
-    progressBar->setValue(current);
-  }
+  vvProgressDialog(std::string message,bool show_progress=false);
   ~vvProgressDialog() {}
-
-public slots:
-
+  void SetText(std::string message);
+  void AddToText(std::string message);
+  void SetProgress(unsigned int current,unsigned int max);
 };
 
 #endif
index 7c78a0aecba73e5d352460843cf13fc01f1dad36..0b29ca956cc6996138639934eba6a9614497fcea 100644 (file)
@@ -23,7 +23,7 @@
 #include "vvImageReader.h"
 #include "vvImageWriter.h"
 #include "vvLabelImageLoaderWidget.h"
-#include "vvProgressDialog.h"
+#include "vvThreadedFilter.h"
 
 // Qt
 #include <QMessageBox>
@@ -45,6 +45,7 @@ vvToolExtractLung::vvToolExtractLung(vvMainWindowBase * parent, Qt::WindowFlags
   Ui_vvToolExtractLung::setupUi(mToolWidget);
   mMaskLoaderBox->setEnabled(false);
   mOptionsBox->setEnabled(false);
+  mPatientMaskInputWidget->SetText("Patient mask");
   connect(mPatientMaskInputWidget, SIGNAL(accepted()), this, SLOT(PatientMaskInputIsSelected()));
 
   // Default values
@@ -54,7 +55,7 @@ vvToolExtractLung::vvToolExtractLung(vvMainWindowBase * parent, Qt::WindowFlags
   mFilter = FilterType::New();  
 
   // Add input selector
-  AddInputSelector("Select image", mFilter);
+  AddInputSelector("Select CT thorax image", mFilter);
 }
 //------------------------------------------------------------------------------
 
@@ -137,12 +138,15 @@ void vvToolExtractLung::apply()
   mFilter->SetArgsInfo(mArgsInfo);
 
   DD("mfilter->Update");
-  // vvThreadedFilter a;
-  // a->SetFilter(mFilter)
+  vvThreadedFilter thread;
+  //  thread.SetFilter((clitk::FilterBase*)&(*mFilter));
+  //  thread.SetFilter((clitk::FilterBase*)&(*mFilter));
+  thread.SetFilter(&(*mFilter));
   // connect(a, SIGNAL(rejected()), this, SLOT(FilterHasBeenCanceled()));
-  // a->Update();
+  thread.Update();
   // if (a->HasError()) { DD(a->GetError()); return; }
-  mFilter->Update();
+  //  mFilter->Update();
+  DD("after thread");
 
   // Check error
   if (mFilter->HasError()) {
@@ -155,6 +159,12 @@ void vvToolExtractLung::apply()
   std::vector<vvImage::Pointer> output = mFilter->GetOutputVVImages();
   DD(output.size());
   
+  if (output.size() == 0) {
+    std::cerr << "Error : no output ?" << std::endl;
+    close();
+    return;
+  }
+  
   // Set Lung into VV
   DD("lung");
   vvImage::Pointer lung = output[0];
index 35de7bfb33c9f01f42393b1156c468c5860347d8..94957050c5e64f7ac6bd2b05a990728e4999fae3 100644 (file)
@@ -17,6 +17,7 @@
 ======================================================================-====*/
 #ifndef VVTOOLINPUTSELECTORWIDGET_CXX
 #define VVTOOLINPUTSELECTORWIDGET_CXX
+
 #include "vvToolSimpleInputSelectorWidget.h"
 #include "vvToolInputSelectorWidget.h"
 #include "vvSlicerManager.h"
index 466d43e947964978ce6b85479d389cdbf40c0aad..fd156f3080abc4edeec882bff8ec68b5c8d6b227 100644 (file)
@@ -194,13 +194,18 @@ void vvToolPlastimatch::apply()
   */
 
   // Get warped output and display it
-  m_WarpedImage = vvImageFromITK<3, float>(m_WarpedImageITK);
-  std::ostringstream osstream;
-  osstream << "plm_warped_" << m_InputSlicerManagers[1]->GetFileName() << ".mhd";
-  AddImage(m_WarpedImage, osstream.str());
-
-  // Get DVF 
-  DD("TODO get and display DVF");
+  if (m_WarpedImageITK) {
+    m_WarpedImage = vvImageFromITK<3, float>(m_WarpedImageITK);
+    std::ostringstream osstream;
+    osstream << "plm_warped_" << m_InputSlicerManagers[1]->GetFileName() << ".mhd";
+    AddImage(m_WarpedImage, osstream.str());
+    
+    // Get DVF 
+    DD("TODO get and display DVF");
+  }
+  else {
+    QMessageBox::information(this, "Error", "No result ...");
+  }
 
   // End
   QApplication::restoreOverrideCursor();
index b6525f72da5b4ad9d49d7dd8783e73ab2882bbaf..3a533ea27838ca4ae7f5b6791b195ff5f1065991 100644 (file)
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 ======================================================================-====*/
+
+// vv
 #include "vvToolRigidReg.h"
-#include <QComboBox>
-#include <QCursor>
-#include <QApplication>
+#include "vvImageReader.h"
+#include "vvSlicer.h"
+
+// vtk
 #include <vtkImageData.h>
 #include <vtkSmartPointer.h>
 #include <vtkTransform.h>
-#include <vvImageReader.h>
-#include "vvImage.h"
-#include "vvSlicer.h"
-#include <QFile>
+
+// clitk
 #include "clitkTransformUtilities.h"
-#include <QString>
+
+// qt
 #include <QMessageBox>
-#include <vvMainWindow.h>
 #include <QFileDialog>
 #include <QTextStream>
+#include <QComboBox>
+#include <QCursor>
+
 //------------------------------------------------------------------------------
 // Create the tool and automagically (I like this word) insert it in
 // the main window menu.
@@ -46,10 +50,10 @@ vvToolRigidReg::vvToolRigidReg(vvMainWindowBase * parent, Qt::WindowFlags f):
 {
   // GUI Initialization
   Ui_vvToolRigidReg::setupUi(mToolWidget);
-   QSize qsize;
-   qsize.setHeight(470);
-   qsize.setWidth(850);
-   mToolWidget->setFixedSize(qsize);
+   // QSize qsize;
+//    qsize.setHeight(470);
+//    qsize.setWidth(850);
+//    mToolWidget->setFixedSize(qsize);
 
 
   // Set how many inputs are needed for this tool
@@ -389,8 +393,8 @@ void vvToolRigidReg::SaveFile()
 {
   //Write the Transformation Matrix
     QString f1 = QFileDialog::getSaveFileName(this, tr("Save Transformation Matrix File"),
-                           "/home",
-                            tr("Text (*.mat *.txt *.doc *.rtf)"));
+                                              mMainWindow->GetInputPathName(),
+                                              tr("Text (*.mat *.txt *.doc *.rtf)"));
     QFile file1(f1);
     std::vector<QString> transparameters;
     QString line1;
@@ -429,7 +433,7 @@ void vvToolRigidReg::ReadFile()
    QString file1 = QFileDialog::getOpenFileName(
                     this,
                    "Choose the Transformation Parameters file",
-                    "/home",
+                    mMainWindow->GetInputPathName(),
                     "Text (*.mat *.txt *.rtf *.doc)");
     if (file1.isEmpty())
     return;
index 58ff83cf6fa1386126c9380b6e794e64d153f017..a529b97cbc0c1ff260d6471348d32bcee590d64c 100644 (file)
@@ -197,7 +197,10 @@ void vvToolWidgetBase::AddInputSelector(QString s, clitk::ImageToImageGenericFil
     }
   }
   if (mSlicerManagersCompatible.size() == 0) {
-    QMessageBox::information(this, "No image","Sorry, could not perform operation. No (compatible) image.");
+    std::ostringstream osstream;
+    osstream << "Sorry, could not perform operation. No (compatible) image. "
+             << mFilter->GetAvailableImageTypes();
+    QMessageBox::information(this, "No image", osstream.str().c_str());
     reject();
     return;
   }
@@ -295,6 +298,7 @@ void vvToolWidgetBase::closeEvent(QCloseEvent *event)
 bool vvToolWidgetBase::close()
 {
   // DD("vvToolWidgetBase::close()");
+  QApplication::restoreOverrideCursor();
   return QWidget::close();
 }
 //------------------------------------------------------------------------------