Medical Imaging Interaction Toolkit  2024.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
itkEnhancedHistogramToTextureFeaturesFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 *
3 * Copyright Insight Software Consortium
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 __itkEnhancedHistogramToTextureFeaturesFilter_h
19 #define __itkEnhancedHistogramToTextureFeaturesFilter_h
20 
21 #include "itkHistogram.h"
22 #include "itkMacro.h"
23 #include "itkProcessObject.h"
24 #include "itkSimpleDataObjectDecorator.h"
25 
27 #define itkMacroGLCMFeatureGetter(name) \
28  const MeasurementObjectType * Get##name##Output() const; \
29  \
30  MeasurementType Get##name() const;
31 
32 namespace itk
33 {
34  namespace Statistics
35  {
102  template< typename THistogram >
103  class EnhancedHistogramToTextureFeaturesFilter:public ProcessObject
104  {
105  public:
108  typedef ProcessObject Superclass;
111 
113  itkTypeMacro(EnhancedHistogramToTextureFeaturesFilter, ProcessObject);
114 
116  itkNewMacro(Self);
117 
118  typedef THistogram HistogramType;
119  typedef typename HistogramType::Pointer HistogramPointer;
120  typedef typename HistogramType::ConstPointer HistogramConstPointer;
121  typedef typename HistogramType::MeasurementType MeasurementType;
122  typedef typename HistogramType::MeasurementVectorType MeasurementVectorType;
123  typedef typename HistogramType::IndexType IndexType;
124  typedef typename HistogramType::AbsoluteFrequencyType AbsoluteFrequencyType;
125  typedef typename HistogramType::RelativeFrequencyType RelativeFrequencyType;
126 
127  typedef typename HistogramType::TotalAbsoluteFrequencyType
129 
130  typedef typename HistogramType::TotalRelativeFrequencyType
132 
134  typedef std::vector< RelativeFrequencyType > RelativeFrequencyContainerType;
135 
137  using Superclass::SetInput;
138  void SetInput(const HistogramType *histogram);
139 
140  const HistogramType * GetInput() const;
141 
143  typedef DataObject::Pointer DataObjectPointer;
144 
146  typedef SimpleDataObjectDecorator< MeasurementType > MeasurementObjectType;
147 
149  MeasurementType GetEnergy() const;
150 
151  const MeasurementObjectType * GetEnergyOutput() const;
152 
154  MeasurementType GetEntropy() const;
155 
156  const MeasurementObjectType * GetEntropyOutput() const;
157 
160 
162 
165 
167 
169  MeasurementType GetInertia() const;
170 
171  const MeasurementObjectType * GetInertiaOutput() const;
172 
175 
177 
180 
182 
185 
187 
208 
210  typedef enum {
241 
244 
245  protected:
248  void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
249 
251  typedef ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
252  using Superclass::MakeOutput;
254 
255  void GenerateData() ITK_OVERRIDE;
256 
257  private:
258  EnhancedHistogramToTextureFeaturesFilter(const Self &); //purposely not implemented
259  void operator=(const Self &); //purposely not implemented
260 
261  void ComputeMeansAndVariances(double & pixelMean, double & marginalMean,
262  double & marginalDevSquared, double & pixelVariance);
263 
264  RelativeFrequencyContainerType m_RelativeFrequencyContainer;
265  };
266  } // end of namespace Statistics
267 } // end of namespace itk
268 
269 #ifndef ITK_MANUAL_INSTANTIATION
270 #include "itkEnhancedHistogramToTextureFeaturesFilter.hxx"
271 #endif
272 
273 #endif
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::MakeOutput
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) ITK_OVERRIDE
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::DataObjectPointer
DataObject::Pointer DataObjectPointer
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:143
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::DataObjectPointerArraySizeType
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:251
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::JointAverage
@ JointAverage
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:236
itkMacroGLCMFeatureGetter
#define itkMacroGLCMFeatureGetter(name)
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:27
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetClusterShadeOutput
const MeasurementObjectType * GetClusterShadeOutput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::MaximumProbability
@ MaximumProbability
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:222
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetCorrelationOutput
const MeasurementObjectType * GetCorrelationOutput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:110
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::HistogramConstPointer
HistogramType::ConstPointer HistogramConstPointer
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:120
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::AbsoluteFrequencyType
HistogramType::AbsoluteFrequencyType AbsoluteFrequencyType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:124
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::TotalAbsoluteFrequencyType
HistogramType::TotalAbsoluteFrequencyType TotalAbsoluteFrequencyType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:128
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::InverseDifference
@ InverseDifference
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:235
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetFeature
MeasurementType GetFeature(TextureFeatureName name)
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Variance
@ Variance
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:226
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetInertiaOutput
const MeasurementObjectType * GetInertiaOutput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Superclass
ProcessObject Superclass
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:108
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Homogeneity1
@ Homogeneity1
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:224
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Entropy
@ Entropy
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:212
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::RelativeFrequencyContainerType
std::vector< RelativeFrequencyType > RelativeFrequencyContainerType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:134
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::EnhancedHistogramToTextureFeaturesFilter
EnhancedHistogramToTextureFeaturesFilter()
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetHaralickCorrelationOutput
const MeasurementObjectType * GetHaralickCorrelationOutput() const
itk::SmartPointer< Self >
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetInput
const HistogramType * GetInput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Self
EnhancedHistogramToTextureFeaturesFilter Self
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:107
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Correlation
@ Correlation
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:213
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetInverseDifferenceMomentOutput
const MeasurementObjectType * GetInverseDifferenceMomentOutput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::TextureFeatureName
TextureFeatureName
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:210
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Contrast
@ Contrast
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:220
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::InverseVariance
@ InverseVariance
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:223
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::MeasurementObjectType
SimpleDataObjectDecorator< MeasurementType > MeasurementObjectType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:146
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetClusterShade
MeasurementType GetClusterShade() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::MeasurementVectorType
HistogramType::MeasurementVectorType MeasurementVectorType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:122
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::DifferenceVariance
@ DifferenceVariance
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:232
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Inertia
@ Inertia
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:215
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetEnergyOutput
const MeasurementObjectType * GetEnergyOutput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetClusterProminenceOutput
const MeasurementObjectType * GetClusterProminenceOutput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetEntropyOutput
const MeasurementObjectType * GetEntropyOutput() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetEntropy
MeasurementType GetEntropy() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::ClusterShade
@ ClusterShade
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:216
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::DifferenceAverage
@ DifferenceAverage
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:230
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Energy
@ Energy
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:211
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetEnergy
MeasurementType GetEnergy() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::SumAverage
@ SumAverage
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:227
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::TotalRelativeFrequencyType
HistogramType::TotalRelativeFrequencyType TotalRelativeFrequencyType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:131
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter
This class computes texture feature coefficients from a grey level co-occurrence matrix.
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:103
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::InverseDifferenceMoment
@ InverseDifferenceMoment
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:214
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Dissimilarity
@ Dissimilarity
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:221
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::SecondMeasureOfInformationCorrelation
@ SecondMeasureOfInformationCorrelation
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:238
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetHaralickCorrelation
MeasurementType GetHaralickCorrelation() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::InverseDifferenceMomentNormalized
@ InverseDifferenceMomentNormalized
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:233
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::InvalidFeatureName
@ InvalidFeatureName
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:239
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::HaralickCorrelation
@ HaralickCorrelation
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:218
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::HistogramType
THistogram HistogramType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:116
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetClusterProminence
MeasurementType GetClusterProminence() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::HistogramPointer
HistogramType::Pointer HistogramPointer
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:119
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::SumEntropy
@ SumEntropy
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:228
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::InverseDifferenceNormalized
@ InverseDifferenceNormalized
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:234
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::~EnhancedHistogramToTextureFeaturesFilter
~EnhancedHistogramToTextureFeaturesFilter() override
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:247
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetInverseDifferenceMoment
MeasurementType GetInverseDifferenceMoment() const
itk
SET FUNCTIONS.
Definition: itkIntelligentBinaryClosingFilter.h:30
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetInertia
MeasurementType GetInertia() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GenerateData
void GenerateData() ITK_OVERRIDE
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::RelativeFrequencyType
HistogramType::RelativeFrequencyType RelativeFrequencyType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:125
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::FirstMeasureOfInformationCorrelation
@ FirstMeasureOfInformationCorrelation
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:237
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::ClusterTendency
@ ClusterTendency
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:225
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Autocorrelation
@ Autocorrelation
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:219
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::GetCorrelation
MeasurementType GetCorrelation() const
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::DifferenceEntropy
@ DifferenceEntropy
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:231
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::MeasurementType
HistogramType::MeasurementType MeasurementType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:121
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::Pointer
SmartPointer< Self > Pointer
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:109
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::SumVariance
@ SumVariance
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:229
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::ClusterProminence
@ ClusterProminence
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:217
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::SetInput
void SetInput(const HistogramType *histogram)
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter::IndexType
HistogramType::IndexType IndexType
Definition: itkEnhancedHistogramToTextureFeaturesFilter.h:123