Slicer  5.1
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
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