ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkHistogramToTextureFeaturesFilter.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#ifndef itkHistogramToTextureFeaturesFilter_h
19#define itkHistogramToTextureFeaturesFilter_h
20
21#include "itkHistogram.h"
22#include "itkMacro.h"
23#include "itkProcessObject.h"
25
26namespace itk::Statistics
27{
52// Define how to print enumeration
53extern ITKStatistics_EXPORT std::ostream &
55
114template <typename THistogram>
115class ITK_TEMPLATE_EXPORT HistogramToTextureFeaturesFilter : public ProcessObject
116{
117public:
118 ITK_DISALLOW_COPY_AND_MOVE(HistogramToTextureFeaturesFilter);
119
125
127 itkOverrideGetNameOfClassMacro(HistogramToTextureFeaturesFilter);
128
130 itkNewMacro(Self);
131
132 using HistogramType = THistogram;
133 using HistogramPointer = typename HistogramType::Pointer;
134 using HistogramConstPointer = typename HistogramType::ConstPointer;
135 using MeasurementType = typename HistogramType::MeasurementType;
136 using MeasurementVectorType = typename HistogramType::MeasurementVectorType;
137 using IndexType = typename HistogramType::IndexType;
138 using AbsoluteFrequencyType = typename HistogramType::AbsoluteFrequencyType;
139 using RelativeFrequencyType = typename HistogramType::RelativeFrequencyType;
140
141 using TotalAbsoluteFrequencyType = typename HistogramType::TotalAbsoluteFrequencyType;
142
143 using TotalRelativeFrequencyType = typename HistogramType::TotalRelativeFrequencyType;
144
146 using RelativeFrequencyContainerType = std::vector<RelativeFrequencyType>;
147
150 void
151 SetInput(const HistogramType * histogram);
152
153 const HistogramType *
154 GetInput() const;
155
158
161
164 GetEnergy() const;
165
168
171 GetEntropy() const;
172
175
179
182
186
189
192 GetInertia() const;
193
196
200
203
207
210
214
217
219#if !defined(ITK_LEGACY_REMOVE)
221 static constexpr TextureFeatureEnum Energy = TextureFeatureEnum::Energy;
222 static constexpr TextureFeatureEnum Entropy = TextureFeatureEnum::Entropy;
223 static constexpr TextureFeatureEnum Correlation = TextureFeatureEnum::Correlation;
224 static constexpr TextureFeatureEnum InverseDifferenceMoment = TextureFeatureEnum::InverseDifferenceMoment;
225 static constexpr TextureFeatureEnum Inertia = TextureFeatureEnum::Inertia;
226 static constexpr TextureFeatureEnum ClusterShade = TextureFeatureEnum::ClusterShade;
227 static constexpr TextureFeatureEnum ClusterProminence = TextureFeatureEnum::ClusterProminence;
228 static constexpr TextureFeatureEnum HaralickCorrelation = TextureFeatureEnum::HaralickCorrelation;
229 static constexpr TextureFeatureEnum InvalidFeatureName = TextureFeatureEnum::InvalidFeatureName;
230#endif
231
235
236protected:
239 void
240 PrintSelf(std::ostream & os, Indent indent) const override;
241
246
247 void
248 GenerateData() override;
249
250private:
251 void
252 ComputeMeansAndVariances(double & pixelMean,
253 double & marginalMean,
254 double & marginalDevSquared,
255 double & pixelVariance);
256
258};
259} // namespace itk::Statistics
260
261#ifndef ITK_MANUAL_INSTANTIATION
262# include "itkHistogramToTextureFeaturesFilter.hxx"
263#endif
264
265#endif
SmartPointer< Self > Pointer
Control indentation during Print() invocation.
Definition itkIndent.h:50
virtual void SetInput(const DataObjectIdentifierType &key, DataObject *input)
Protected method for setting indexed and named inputs.
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
Make a DataObject of the correct type to used as the specified output.
Decorates any "simple" data type (data types without smart pointers) with a DataObject API.
Implements transparent reference counting.
This class contains all enum classes used by HistogramToTextureFeaturesFilter class.
typename HistogramType::TotalAbsoluteFrequencyType TotalAbsoluteFrequencyType
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) override
Make a DataObject of the correct type to used as the specified output.
const MeasurementObjectType * GetHaralickCorrelationOutput() const
const MeasurementObjectType * GetEnergyOutput() const
typename HistogramType::AbsoluteFrequencyType AbsoluteFrequencyType
void SetInput(const HistogramType *histogram)
void PrintSelf(std::ostream &os, Indent indent) const override
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
const MeasurementObjectType * GetInertiaOutput() const
typename HistogramType::TotalRelativeFrequencyType TotalRelativeFrequencyType
const MeasurementObjectType * GetCorrelationOutput() const
const MeasurementObjectType * GetClusterShadeOutput() const
SimpleDataObjectDecorator< MeasurementType > MeasurementObjectType
MeasurementType GetFeature(TextureFeatureEnum feature)
HistogramToTextureFeaturesFilterEnums::TextureFeature TextureFeatureEnum
const MeasurementObjectType * GetClusterProminenceOutput() const
void ComputeMeansAndVariances(double &pixelMean, double &marginalMean, double &marginalDevSquared, double &pixelVariance)
const MeasurementObjectType * GetInverseDifferenceMomentOutput() const
typename HistogramType::MeasurementVectorType MeasurementVectorType
const MeasurementObjectType * GetEntropyOutput() const
typename HistogramType::RelativeFrequencyType RelativeFrequencyType
ITKStatistics_EXPORT std::ostream & operator<<(std::ostream &out, const ExpectationMaximizationMixtureModelEstimatorEnums::TERMINATION_CODE value)