ITK  4.10.0
Insight Segmentation and Registration Toolkit
itkHistogramToRunLengthFeaturesFilter.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  * http://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 itkHistogramToRunLengthFeaturesFilter_h
19 #define itkHistogramToRunLengthFeaturesFilter_h
20 
21 #include "itkHistogram.h"
22 #include "itkMacro.h"
23 #include "itkProcessObject.h"
25 
26 namespace itk {
27 namespace Statistics {
65 template< typename THistogram >
67 {
68 public:
74 
77 
79  itkNewMacro( Self );
80 
81  typedef THistogram HistogramType;
82  typedef typename HistogramType::Pointer HistogramPointer;
83  typedef typename HistogramType::ConstPointer HistogramConstPointer;
84  typedef typename HistogramType::MeasurementType MeasurementType;
85  typedef typename HistogramType::MeasurementVectorType MeasurementVectorType;
86  typedef typename HistogramType::IndexType IndexType;
87  typedef typename HistogramType::
88  TotalAbsoluteFrequencyType FrequencyType;
89 
92  void SetInput ( const HistogramType * histogram );
93  const HistogramType * GetInput() const;
95 
98 
101 
103  MeasurementType GetShortRunEmphasis() const;
104  const MeasurementObjectType* GetShortRunEmphasisOutput() const;
106 
108  MeasurementType GetLongRunEmphasis() const;
109  const MeasurementObjectType* GetLongRunEmphasisOutput() const;
111 
113  MeasurementType GetGreyLevelNonuniformity() const;
114  const MeasurementObjectType* GetGreyLevelNonuniformityOutput() const;
116 
118  MeasurementType GetRunLengthNonuniformity() const;
119  const MeasurementObjectType* GetRunLengthNonuniformityOutput() const;
121 
123  MeasurementType GetLowGreyLevelRunEmphasis() const;
124  const MeasurementObjectType* GetLowGreyLevelRunEmphasisOutput() const;
126 
128  MeasurementType GetHighGreyLevelRunEmphasis() const;
129  const MeasurementObjectType* GetHighGreyLevelRunEmphasisOutput() const;
131 
133  MeasurementType GetShortRunLowGreyLevelEmphasis() const;
134  const MeasurementObjectType* GetShortRunLowGreyLevelEmphasisOutput() const;
136 
138  MeasurementType GetShortRunHighGreyLevelEmphasis() const;
139  const MeasurementObjectType* GetShortRunHighGreyLevelEmphasisOutput() const;
141 
143  MeasurementType GetLongRunLowGreyLevelEmphasis() const;
144  const MeasurementObjectType* GetLongRunLowGreyLevelEmphasisOutput() const;
146 
148  MeasurementType GetLongRunHighGreyLevelEmphasis() const;
149  const MeasurementObjectType* GetLongRunHighGreyLevelEmphasisOutput() const;
151 
152  itkGetMacro( TotalNumberOfRuns, unsigned long );
153 
155  typedef enum
156  {
168 
170  MeasurementType GetFeature( RunLengthFeatureName name );
171 
172 protected:
175  virtual void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
176 
180  virtual DataObjectPointer MakeOutput( DataObjectPointerArraySizeType ) ITK_OVERRIDE;
181 
182  virtual void GenerateData() ITK_OVERRIDE;
183 
184 private:
185  HistogramToRunLengthFeaturesFilter(const Self&) ITK_DELETE_FUNCTION;
186  void operator=(const Self&) ITK_DELETE_FUNCTION;
187 
188  unsigned long m_TotalNumberOfRuns;
189 
190 };
191 
192 } // end of namespace Statistics
193 } // end of namespace itk
194 
195 #ifndef ITK_MANUAL_INSTANTIATION
196 #include "itkHistogramToRunLengthFeaturesFilter.hxx"
197 #endif
198 
199 #endif
const MeasurementObjectType * GetShortRunEmphasisOutput() const
This class computes texture feature coefficients from a grey level run-length matrix.
const MeasurementObjectType * GetGreyLevelNonuniformityOutput() const
virtual void PrintSelf(std::ostream &os, Indent indent) const override
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
Definition: itkArray.h:30
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
SimpleDataObjectDecorator< MeasurementType > MeasurementObjectType
MeasurementType GetLongRunHighGreyLevelEmphasis() const
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) override
Make a DataObject of the correct type to used as the specified output.
const MeasurementObjectType * GetLongRunLowGreyLevelEmphasisOutput() const
Decorates any "simple" data type (data types without smart pointers) with a DataObject API...
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
virtual void SetInput(const DataObjectIdentifierType &key, DataObject *input)
Protected method for setting indexed and named inputs.
MeasurementType GetFeature(RunLengthFeatureName name)
const MeasurementObjectType * GetRunLengthNonuniformityOutput() const
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
Make a DataObject of the correct type to used as the specified output.
MeasurementType GetShortRunHighGreyLevelEmphasis() const
const MeasurementObjectType * GetLongRunHighGreyLevelEmphasisOutput() const
const MeasurementObjectType * GetShortRunLowGreyLevelEmphasisOutput() const
const MeasurementObjectType * GetLowGreyLevelRunEmphasisOutput() const
Control indentation during Print() invocation.
Definition: itkIndent.h:49
const MeasurementObjectType * GetHighGreyLevelRunEmphasisOutput() const
MeasurementType GetShortRunLowGreyLevelEmphasis() const
void SetInput(const HistogramType *histogram)
const MeasurementObjectType * GetShortRunHighGreyLevelEmphasisOutput() const
const MeasurementObjectType * GetLongRunEmphasisOutput() const