Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
itkEnhancedHistogramToSizeZoneFeaturesFilter.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 /*=========================================================================
14 *
15 * Copyright Insight Software Consortium
16 *
17 * Licensed under the Apache License, Version 2.0 (the "License");
18 * you may not use this file except in compliance with the License.
19 * You may obtain a copy of the License at
20 *
21 * https://www.apache.org/licenses/LICENSE-2.0.txt
22 *
23 * Unless required by applicable law or agreed to in writing, software
24 * distributed under the License is distributed on an "AS IS" BASIS,
25 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26 * See the License for the specific language governing permissions and
27 * limitations under the License.
28 *
29 *=========================================================================*/
30 #ifndef itkEnhancedHistogramToSizeZoneFeaturesFilter_h
31 #define itkEnhancedHistogramToSizeZoneFeaturesFilter_h
32 
33 #include <itkHistogram.h>
34 #include <itkMacro.h>
35 #include <itkProcessObject.h>
36 #include <itkSimpleDataObjectDecorator.h>
37 
38 namespace itk {
39  namespace Statistics {
76  template< typename THistogram >
77  class EnhancedHistogramToSizeZoneFeaturesFilter : public ProcessObject
78  {
79  public:
82  typedef ProcessObject Superclass;
85 
87  itkTypeMacro( EnhancedHistogramToSizeZoneFeaturesFilter, ProcessObject );
88 
90  itkNewMacro( Self );
91 
92  typedef THistogram HistogramType;
93  typedef typename HistogramType::Pointer HistogramPointer;
94  typedef typename HistogramType::ConstPointer HistogramConstPointer;
95  typedef typename HistogramType::MeasurementType MeasurementType;
96  typedef typename HistogramType::MeasurementVectorType MeasurementVectorType;
97  typedef typename HistogramType::IndexType IndexType;
98  typedef typename HistogramType::
99  TotalAbsoluteFrequencyType FrequencyType;
100 
102  using Superclass::SetInput;
103  void SetInput ( const HistogramType * histogram );
104  const HistogramType * GetInput() const;
105 
107  typedef DataObject::Pointer DataObjectPointer;
108 
110  typedef SimpleDataObjectDecorator<MeasurementType> MeasurementObjectType;
111 
115 
119 
123 
127 
131 
135 
139 
143 
147 
151 
155 
159 
163 
167 
171 
175 
179 
180  itkGetMacro( TotalNumberOfZones, unsigned long );
181 
182  itkGetConstMacro(NumberOfVoxels, unsigned long);
183  itkSetMacro(NumberOfVoxels, unsigned long);
184 
186  typedef enum
187  {
205 
208 
209  protected:
212  virtual void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
213 
215  typedef ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
216  using Superclass::MakeOutput;
218 
219  virtual void GenerateData() ITK_OVERRIDE;
220 
221  private:
222  EnhancedHistogramToSizeZoneFeaturesFilter(const Self&); //purposely not implemented
223  void operator=(const Self&); //purposely not implemented
224 
225  unsigned long m_TotalNumberOfZones;
226  unsigned long m_NumberOfVoxels;
227  };
228  } // end of namespace Statistics
229 } // end of namespace itk
230 
231 #ifndef ITK_MANUAL_INSTANTIATION
232 #include <itkEnhancedHistogramToSizeZoneFeaturesFilter.tpp>
233 #endif
234 
235 #endif
This class computes texture feature coefficients from a grey level Zone-length matrix.
const MeasurementObjectType * GetSmallZoneEmphasisOutput() const
const MeasurementObjectType * GetSizeZoneNonuniformityNormalizedOutput() const
const MeasurementObjectType * GetSizeZoneVarianceOutput() const
const MeasurementObjectType * GetHighGreyLevelZoneEmphasisOutput() const
const MeasurementObjectType * GetGreyLevelVarianceOutput() const
const MeasurementObjectType * GetSmallZoneHighGreyLevelEmphasisOutput() const
const MeasurementObjectType * GetZoneEntropyOutput() const
const MeasurementObjectType * GetZonePercentageOutput() const
const MeasurementObjectType * GetGreyLevelNonuniformityOutput() const
const MeasurementObjectType * GetLargeZoneHighGreyLevelEmphasisOutput() const
const MeasurementObjectType * GetGreyLevelNonuniformityNormalizedOutput() const
virtual void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
MeasurementType GetFeature(SizeZoneFeatureName name)
const MeasurementObjectType * GetLargeZoneEmphasisOutput() const
const MeasurementObjectType * GetSmallZoneLowGreyLevelEmphasisOutput() const
const MeasurementObjectType * GetNumberOfZonesOutput() const
const MeasurementObjectType * GetSizeZoneNonuniformityOutput() const
const MeasurementObjectType * GetLargeZoneLowGreyLevelEmphasisOutput() const
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) ITK_OVERRIDE
const MeasurementObjectType * GetLowGreyLevelZoneEmphasisOutput() const