Slicer  5.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkITKImageThresholdCalculator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
4 
5  See COPYRIGHT.txt
6  or http://www.slicer.org/copyright/copyright.txt for details.
7 
8  Program: vtkITK
9  Module: $HeadURL$
10  Date: $Date$
11  Version: $Revision$
12 
13 ==========================================================================*/
14 
15 #ifndef __vtkITKImageThresholdCalculator_h
16 #define __vtkITKImageThresholdCalculator_h
17 
18 #include "vtkImageAlgorithm.h"
19 #include "vtkImageData.h"
20 #include "vtkObjectFactory.h"
21 #include "vtkMatrix4x4.h"
22 
23 #include "vtkITK.h"
24 #include "itkImageIOBase.h"
25 
26 class vtkStringArray;
27 
28 class VTK_ITK_EXPORT vtkITKImageThresholdCalculator : public vtkImageAlgorithm
29 {
30 public:
31  static vtkITKImageThresholdCalculator *New();
32  vtkTypeMacro(vtkITKImageThresholdCalculator,vtkImageAlgorithm);
33  void PrintSelf(ostream& os, vtkIndent indent) override;
34 
35  vtkGetMacro(Threshold, double);
36 
37  enum
38  {
51  NUMBER_OF_METHODS // this must be the last
52  };
53 
55 
61  vtkSetClampMacro(Method, int, 0, NUMBER_OF_METHODS-1);
62  vtkGetMacro(Method, int);
63  void SetMethodToHuang() { this->SetMethod(METHOD_HUANG); }
64  void SetMethodToIntermodes() { this->SetMethod(METHOD_INTERMODES); }
65  void SetMethodToIsoData() { this->SetMethod(METHOD_ISO_DATA); }
67  void SetMethodToLi() { this->SetMethod(METHOD_LI); }
69  void SetMethodToMoments() { this->SetMethod(METHOD_MOMENTS); }
70  void SetMethodToOtsu() { this->SetMethod(METHOD_OTSU); }
71  void SetMethodToRenyiEntropy() { this->SetMethod(METHOD_RENYI_ENTROPY); }
72  void SetMethodToShanbhag() { this->SetMethod(METHOD_SHANBHAG); }
73  void SetMethodToTriangle() { this->SetMethod(METHOD_TRIANGLE); }
74  void SetMethodToYen() { this->SetMethod(METHOD_YEN); }
75  static const char *GetMethodAsString(int method);
77 
80  using vtkAlgorithm::Update;
82  void Update() override;
83 
84 protected:
87 
88  int Method;
89  double Threshold;
90 
91 private:
93  void operator=(const vtkITKImageThresholdCalculator&) = delete;
94 };
95 
96 //vtkStandardNewMacro(vtkITKImageThresholdCalculator)
97 
98 #endif