Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkAdaptiveRegionGrowingToolGUI.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 #ifndef QMITK_QmitkAdaptiveRegionGrowingToolGUI_H
13 #define QMITK_QmitkAdaptiveRegionGrowingToolGUI_H
14 
15 #include "itkImage.h"
16 #include "mitkDataStorage.h"
17 #include "mitkGeometry3D.h"
18 #include "mitkPointSet.h"
19 
20 #include "qwidget.h"
21 #include "ui_QmitkAdaptiveRegionGrowingToolGUIControls.h"
22 
24 
25 #include "QmitkToolGUI.h"
26 
28 
29 class DataNode;
30 class QmitkAdaptiveRegionGrowingToolGUIControls;
31 
41 {
42  Q_OBJECT
43 
44 public:
49 
50  itkFactorylessNewMacro(Self);
51 
52  itkCloneMacro(Self);
53 
54  QmitkAdaptiveRegionGrowingToolGUI(QWidget *parent = nullptr);
55 
58  virtual void CreateConnections();
59 
61  virtual void SetDataStorage(mitk::DataStorage *dataStorage);
62 
69  void SetDataNodeNames(std::string labledSegmentation,
70  std::string binaryImage,
71  /*std::string vesselTree,*/ std::string surface,
72  std::string maskedSegmentation);
73 
80  void EnableControls(bool enable);
81 
86  void SetInputImageNode(mitk::DataNode *node);
87 
88  void Deactivated();
89  void Activated();
90 
94  Ui::QmitkAdaptiveRegionGrowingToolGUIControls m_Controls;
95 
96 protected slots:
97 
103  void RunSegmentation();
104 
111  void ChangeLevelWindow(double newValue);
112 
118  void IncreaseSlider();
119 
125  void DecreaseSlider();
126 
132  void ConfirmSegmentation();
133 
138  void UseVolumeRendering(bool on);
139 
146  void SetLowerThresholdValue(double lowerThreshold);
147 
154  void SetUpperThresholdValue(double upperThreshold);
155 
161  void OnNewToolAssociated(mitk::Tool *);
162 
163 protected:
165 
168 
170 
172 
176  void OnPointAdded();
177 
178 private:
179  std::string m_NAMEFORORGIMAGE;
180  std::string m_NAMEFORLABLEDSEGMENTATIONIMAGE;
181  std::string m_NAMEFORBINARYIMAGE;
182  std::string m_NAMEFORSURFACE;
183  std::string m_NAMEFORMASKEDSEGMENTATION;
184 
185  mitk::ScalarType m_LOWERTHRESHOLD; // Hounsfield value
186  mitk::ScalarType m_UPPERTHRESHOLD; // Hounsfield value
187  mitk::ScalarType m_SeedPointValueMean;
188 
189  void RemoveHelperNodes();
190 
191  int m_DetectedLeakagePoint;
192 
193  bool m_CurrentRGDirectionIsUpwards; // defines fixed threshold (true = LOWERTHRESHOLD fixed, false = UPPERTHRESHOLD
194  // fixed)
195 
196  int m_SeedpointValue;
197  bool m_SliderInitialized;
198  bool m_UseVolumeRendering;
199  bool m_UpdateSuggestedThreshold;
200  float m_SuggestedThValue;
201 
202  long m_PointSetAddObserverTag;
203  long m_PointSetMoveObserverTag;
204 
205  template <typename TPixel, unsigned int VImageDimension>
206  void StartRegionGrowing(itk::Image<TPixel, VImageDimension> *itkImage,
207  mitk::BaseGeometry *imageGeometry,
208  mitk::PointSet::PointType seedPoint);
209 
210  template <typename TPixel, unsigned int VImageDimension>
211  void ITKThresholding(itk::Image<TPixel, VImageDimension> *inputImage);
212 
213  void InitializeLevelWindow();
214 
215  void EnableVolumeRendering(bool enable);
216 
217  void UpdateVolumeRenderingThreshold(int thValue);
218 };
219 
220 #endif
Base class of all tools used by mitk::ToolManager.
Definition: mitkTool.h:86
Data management class that handles &#39;was created by&#39; relations.
double ScalarType
Ui::QmitkAdaptiveRegionGrowingToolGUIControls m_Controls
The created GUI from the .ui-File. This Attribute is obligatory.
mitk::AdaptiveRegionGrowingTool::Pointer m_RegionGrow3DTool
void StartRegionGrowing(itk::Image< TPixel, VImageDimension > *itkImage, mitk::Image::Pointer &result)
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:40
Base class for GUIs belonging to mitk::Tool classes.
Definition: QmitkToolGUI.h:32
static void ITKThresholding(itk::Image< TPixel, VImageDimension > *originalImage, mitk::Image *segmentation, double lower, double upper, unsigned int timeStep)
BaseGeometry Describes the geometry of a data object.
Class for nodes of the DataTree.
Definition: mitkDataNode.h:57
#define MITKSEGMENTATIONUI_EXPORT