]> Creatis software - clitk.git/blobdiff - vv/vvToolSegmentation.h
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvToolSegmentation.h
index 84d99b5dbca4c1d0354ef791d42519bc44cbc1e9..7e49dc46efc67486f496eb0be6c0093da113ac77 100644 (file)
 #ifndef VVTOOLSEGMENTATION_H
 #define VVTOOLSEGMENTATION_H
 
+#include <QtGlobal>
+#if QT_VERSION >= 0x050000
+#include <QtUiPlugin/QDesignerExportWidget>
+#else
 #include <QtDesigner/QDesignerExportWidget>
+#endif
 
 #include "vvToolBase.h"
 #include "vvToolWidgetBase.h"
@@ -42,23 +47,22 @@ class vvToolSegmentation:
   static void Initialize();
   virtual void InputIsSelected(vvSlicerManager * m);
   void OpenBinaryImage();
+  void RegionGrowing();
   void Erode();
   void Dilate();
   void Labelize();
+  void Merge();
   void RemoveLabel();
   void UpdateAndRenderNewMask();
 
   //-----------------------------------------------------
   public slots:
   virtual void apply();
-  bool eventFilter(QObject *object, QEvent *event);
+  void KeyPressed(std::string KeyPress);
   virtual bool close();
   virtual void MousePositionChanged(int slicer);
-  //  virtual void keyPressEvent(QKeyEvent * event);
-  // virtual void reject();
 
  protected:
-  // virtual void closeEvent(QCloseEvent *event);
   Ui::vvToolSegmentation ui;
   QSharedPointer<vvROIActor> mRefMaskActor;
   QSharedPointer<vvROIActor> mCurrentMaskActor;
@@ -68,10 +72,25 @@ class vvToolSegmentation:
   vvImage::Pointer mCurrentCCLImage;
   int mKernelValue;
   vtkSmartPointer<vtkLookupTable> mDefaultLUTColor;
-  enum { Mode_Default, Mode_CCL};
-  int mCurrentMode;
+  enum { State_Default, State_CCL};
+  int mCurrentState;
 
   QSharedPointer<vvROIActor> CreateMaskActor(vvImage::Pointer image, int i, int colorID, bool BGMode=false);
+  
+  double mCurrentLabelUnderMousePointer;
+  std::vector<double> mCurrentMousePositionInMM;
+  //std::vector<double> mCurrentMousePositionInPixel;
+  double GetBackgroundValue() { return 0; }
+  double GetForegroundValue() { return 1; }
+  long ComputeNumberOfPixels(vvImage::Pointer image, double value);
+
+  // Compute and store sizes of mask Foreground
+  void   UpdateMaskSize(vvImage::Pointer image, long & pix, double & cc);
+  void   UpdateMaskSizeLabels();
+  long   mRefMaskSizeInPixels;
+  double mRefMaskSizeInCC;
+  long   mCurrentMaskSizeInPixels;
+  double mCurrentMaskSizeInCC;
 
 }; // end class vvToolSegmentation
 //------------------------------------------------------------------------------