ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkRenyiEntropyThresholdCalculator.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18
19#ifndef itkRenyiEntropyThresholdCalculator_h
20#define itkRenyiEntropyThresholdCalculator_h
21
23
24namespace itk
25{
26
46template <typename THistogram, typename TOutput = double>
47class ITK_TEMPLATE_EXPORT RenyiEntropyThresholdCalculator : public HistogramThresholdCalculator<THistogram, TOutput>
48{
49public:
50 ITK_DISALLOW_COPY_AND_MOVE(RenyiEntropyThresholdCalculator);
51
57
59 itkNewMacro(Self);
60
62 itkOverrideGetNameOfClassMacro(RenyiEntropyThresholdCalculator);
63
65 using HistogramType = THistogram;
66 using OutputType = TOutput;
67
68protected:
70 {
71 m_FirstBin = 0;
72 m_LastBin = 0;
73 m_Size = 0;
74 }
76
77 void
78 GenerateData() override;
79
80 void
81 PrintSelf(std::ostream & os, Indent indent) const override;
82
83 using TotalAbsoluteFrequencyType = typename HistogramType::TotalAbsoluteFrequencyType;
84 using AbsoluteFrequencyType = typename HistogramType::AbsoluteFrequencyType;
85 using InstanceIdentifier = typename HistogramType::InstanceIdentifier;
86 using SizeValueType = typename HistogramType::SizeValueType;
87
90 const std::vector<double> & normHisto,
91 const std::vector<double> & P1,
92 const std::vector<double> & P2);
93
96 const std::vector<double> & normHisto,
97 const std::vector<double> & P1,
98 const std::vector<double> & P2);
99
102 const std::vector<double> & normHisto,
103 const std::vector<double> & P1,
104 const std::vector<double> & P2);
105
106private:
110};
111
112} // end namespace itk
113
114
115#ifndef ITK_MANUAL_INSTANTIATION
116# include "itkRenyiEntropyThresholdCalculator.hxx"
117#endif
118
119#endif
Control indentation during Print() invocation.
Definition itkIndent.h:50
typename HistogramType::TotalAbsoluteFrequencyType TotalAbsoluteFrequencyType
typename HistogramType::AbsoluteFrequencyType AbsoluteFrequencyType
typename HistogramType::SizeValueType SizeValueType
InstanceIdentifier MaxEntropyThresholding(const HistogramType *histogram, const std::vector< double > &normHisto, const std::vector< double > &P1, const std::vector< double > &P2)
void PrintSelf(std::ostream &os, Indent indent) const override
InstanceIdentifier MaxEntropyThresholding3(const HistogramType *histogram, const std::vector< double > &normHisto, const std::vector< double > &P1, const std::vector< double > &P2)
~RenyiEntropyThresholdCalculator() override=default
HistogramThresholdCalculator< THistogram, TOutput > Superclass
InstanceIdentifier MaxEntropyThresholding2(const HistogramType *histogram, const std::vector< double > &normHisto, const std::vector< double > &P1, const std::vector< double > &P2)
typename HistogramType::InstanceIdentifier InstanceIdentifier
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....