Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram > Class Template Reference

This class computes texture feature coefficients from a grey level co-occurrence matrix. More...

#include <itkEnhancedHistogramToTextureFeaturesFilter.h>

Inheritance diagram for itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >:
Collaboration diagram for itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >:

Public Types

enum  TextureFeatureName {
  Energy, Entropy, Correlation, InverseDifferenceMoment,
  Inertia, ClusterShade, ClusterProminence, HaralickCorrelation,
  Autocorrelation, Contrast, Dissimilarity, MaximumProbability,
  InverseVariance, Homogeneity1, ClusterTendency, Variance,
  SumAverage, SumEntropy, SumVariance, DifferenceAverage,
  DifferenceEntropy, DifferenceVariance, InverseDifferenceMomentNormalized, InverseDifferenceNormalized,
  InverseDifference, InvalidFeatureName
}
 
typedef EnhancedHistogramToTextureFeaturesFilter Self
 
typedef ProcessObject Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef THistogram HistogramType
 
typedef HistogramType::Pointer HistogramPointer
 
typedef HistogramType::ConstPointer HistogramConstPointer
 
typedef HistogramType::MeasurementType MeasurementType
 
typedef HistogramType::MeasurementVectorType MeasurementVectorType
 
typedef HistogramType::IndexType IndexType
 
typedef HistogramType::AbsoluteFrequencyType AbsoluteFrequencyType
 
typedef HistogramType::RelativeFrequencyType RelativeFrequencyType
 
typedef HistogramType::TotalAbsoluteFrequencyType TotalAbsoluteFrequencyType
 
typedef HistogramType::TotalRelativeFrequencyType TotalRelativeFrequencyType
 
typedef std::vector< RelativeFrequencyTypeRelativeFrequencyContainerType
 
typedef DataObject::Pointer DataObjectPointer
 
typedef SimpleDataObjectDecorator< MeasurementTypeMeasurementObjectType
 

Public Member Functions

virtual const char * GetClassName () const
 
void SetInput (const HistogramType *histogram)
 
const HistogramTypeGetInput () const
 
MeasurementType GetEnergy () const
 
const MeasurementObjectTypeGetEnergyOutput () const
 
MeasurementType GetEntropy () const
 
const MeasurementObjectTypeGetEntropyOutput () const
 
MeasurementType GetCorrelation () const
 
const MeasurementObjectTypeGetCorrelationOutput () const
 
MeasurementType GetInverseDifferenceMoment () const
 
const MeasurementObjectTypeGetInverseDifferenceMomentOutput () const
 
MeasurementType GetInertia () const
 
const MeasurementObjectTypeGetInertiaOutput () const
 
MeasurementType GetClusterShade () const
 
const MeasurementObjectTypeGetClusterShadeOutput () const
 
MeasurementType GetClusterProminence () const
 
const MeasurementObjectTypeGetClusterProminenceOutput () const
 
MeasurementType GetHaralickCorrelation () const
 
const MeasurementObjectTypeGetHaralickCorrelationOutput () const
 
const MeasurementObjectTypeGetAutocorrelationOutput () const
 
MeasurementType GetAutocorrelation () const
 
const MeasurementObjectTypeGetContrastOutput () const
 
MeasurementType GetContrast () const
 
const MeasurementObjectTypeGetDissimilarityOutput () const
 
MeasurementType GetDissimilarity () const
 
const MeasurementObjectTypeGetMaximumProbabilityOutput () const
 
MeasurementType GetMaximumProbability () const
 
const MeasurementObjectTypeGetInverseVarianceOutput () const
 
MeasurementType GetInverseVariance () const
 
const MeasurementObjectTypeGetHomogeneity1Output () const
 
MeasurementType GetHomogeneity1 () const
 
const MeasurementObjectTypeGetClusterTendencyOutput () const
 
MeasurementType GetClusterTendency () const
 
const MeasurementObjectTypeGetVarianceOutput () const
 
MeasurementType GetVariance () const
 
const MeasurementObjectTypeGetSumAverageOutput () const
 
MeasurementType GetSumAverage () const
 
const MeasurementObjectTypeGetSumEntropyOutput () const
 
MeasurementType GetSumEntropy () const
 
const MeasurementObjectTypeGetSumVarianceOutput () const
 
MeasurementType GetSumVariance () const
 
const MeasurementObjectTypeGetDifferenceAverageOutput () const
 
MeasurementType GetDifferenceAverage () const
 
const MeasurementObjectTypeGetDifferenceEntropyOutput () const
 
MeasurementType GetDifferenceEntropy () const
 
const MeasurementObjectTypeGetDifferenceVarianceOutput () const
 
MeasurementType GetDifferenceVariance () const
 
const MeasurementObjectTypeGetInverseDifferenceMomentNormalizedOutput () const
 
MeasurementType GetInverseDifferenceMomentNormalized () const
 
const MeasurementObjectTypeGetInverseDifferenceNormalizedOutput () const
 
MeasurementType GetInverseDifferenceNormalized () const
 
const MeasurementObjectTypeGetInverseDifferenceOutput () const
 
MeasurementType GetInverseDifference () const
 
MeasurementType GetFeature (TextureFeatureName name)
 

Static Public Member Functions

static Pointer New ()
 

Protected Types

typedef ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
 

Protected Member Functions

 EnhancedHistogramToTextureFeaturesFilter ()
 
 ~EnhancedHistogramToTextureFeaturesFilter ()
 
virtual void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 
virtual DataObjectPointer MakeOutput (DataObjectPointerArraySizeType) ITK_OVERRIDE
 
virtual void GenerateData () ITK_OVERRIDE
 

Detailed Description

template<typename THistogram>
class itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >

This class computes texture feature coefficients from a grey level co-occurrence matrix.

This class computes features that summarize image texture, given a grey level co-occurrence matrix (generated by a ScalarImageToCooccurrenceMatrixFilter or related class).

The features calculated are as follows (where \( g(i, j) \) is the element in cell i, j of a a normalized GLCM):

"Energy" \( = f_1 = \sum_{i,j}g(i, j)^2 \)

"Entropy" \( = f_2 = -\sum_{i,j}g(i, j) \log_2 g(i, j)\), or 0 if \(g(i, j) = 0\)

"Correlation" \( = f_3 = \sum_{i,j}\frac{(i - \mu)(j - \mu)g(i, j)}{\sigma^2} \)

"Difference Moment" \(= f_4 = \sum_{i,j}\frac{1}{1 + (i - j)^2}g(i, j) \)

"Inertia" \( = f_5 = \sum_{i,j}(i - j)^2g(i, j) \) (sometimes called "contrast.")

"Cluster Shade" \( = f_6 = \sum_{i,j}((i - \mu) + (j - \mu))^3 g(i, j) \)

"Cluster Prominence" \( = f_7 = \sum_{i,j}((i - \mu) + (j - \mu))^4 g(i, j) \)

"Haralick's Correlation" \( = f_8 = \frac{\sum_{i,j}(i, j) g(i, j) -\mu_t^2}{\sigma_t^2} \) where \(\mu_t\) and \(\sigma_t\) are the mean and standard deviation of the row (or column, due to symmetry) sums.

Above, \( \mu = \) (weighted pixel average) \( = \sum_{i,j}i \cdot g(i, j) = \sum_{i,j}j \cdot g(i, j) \) (due to matrix summetry), and

\( \sigma = \) (weighted pixel variance) \( = \sum_{i,j}(i - \mu)^2 \cdot g(i, j) = \sum_{i,j}(j - \mu)^2 \cdot g(i, j) \) (due to matrix summetry)

A good texture feature set to use is the Conners, Trivedi and Harlow set: features 1, 2, 4, 5, 6, and 7. There is some correlation between the various features, so using all of them at the same time is not necessarialy a good idea.

NOTA BENE: The input histogram will be forcably normalized! This algorithm takes three passes through the input histogram if the histogram was already normalized, and four if not.

Web references:

http://www.cssip.uq.edu.au/meastex/www/algs/algs/algs.html http://www.ucalgary.ca/~mhallbey/texture/texture_tutorial.html

Print references:

Haralick, R.M., K. Shanmugam and I. Dinstein. 1973. Textural Features for Image Classification. IEEE Transactions on Systems, Man and Cybernetics. SMC-3(6):610-620.

Haralick, R.M. 1979. Statistical and Structural Approaches to Texture. Proceedings of the IEEE, 67:786-804.

R.W. Conners and C.A. Harlow. A Theoretical Comaprison of Texture Algorithms. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2:204-222, 1980.

R.W. Conners, M.M. Trivedi, and C.A. Harlow. Segmentation of a High-Resolution Urban Scene using Texture Operators. Computer Vision, Graphics and Image Processing, 25:273-310, 1984.

See also
ScalarImageToCooccurrenceMatrixFilter
ScalarImageToTextureFeaturesFilter

Author: Zachary Pincus

Definition at line 108 of file itkEnhancedHistogramToTextureFeaturesFilter.h.

Member Typedef Documentation

template<typename THistogram >
typedef HistogramType::AbsoluteFrequencyType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::AbsoluteFrequencyType
template<typename THistogram >
typedef SmartPointer< const Self > itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::ConstPointer
template<typename THistogram >
typedef DataObject::Pointer itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::DataObjectPointer

Smart Pointer type to a DataObject.

Definition at line 148 of file itkEnhancedHistogramToTextureFeaturesFilter.h.

template<typename THistogram >
typedef ProcessObject::DataObjectPointerArraySizeType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::DataObjectPointerArraySizeType
protected

Make a DataObject to be used for output output.

Definition at line 250 of file itkEnhancedHistogramToTextureFeaturesFilter.h.

template<typename THistogram >
typedef HistogramType::ConstPointer itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::HistogramConstPointer
template<typename THistogram >
typedef HistogramType::Pointer itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::HistogramPointer
template<typename THistogram >
typedef THistogram itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::HistogramType
template<typename THistogram >
typedef HistogramType::IndexType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::IndexType
template<typename THistogram >
typedef SimpleDataObjectDecorator< MeasurementType > itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::MeasurementObjectType

Type of DataObjects used for scalar outputs

Definition at line 151 of file itkEnhancedHistogramToTextureFeaturesFilter.h.

template<typename THistogram >
typedef HistogramType::MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::MeasurementType
template<typename THistogram >
typedef HistogramType::MeasurementVectorType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::MeasurementVectorType
template<typename THistogram >
typedef SmartPointer< Self > itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::Pointer
template<typename THistogram >
typedef std::vector< RelativeFrequencyType > itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::RelativeFrequencyContainerType

Container to hold relative frequencies of the histogram

Definition at line 139 of file itkEnhancedHistogramToTextureFeaturesFilter.h.

template<typename THistogram >
typedef HistogramType::RelativeFrequencyType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::RelativeFrequencyType

Standard typedefs

Definition at line 112 of file itkEnhancedHistogramToTextureFeaturesFilter.h.

template<typename THistogram >
typedef ProcessObject itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::Superclass
template<typename THistogram >
typedef HistogramType::TotalAbsoluteFrequencyType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::TotalAbsoluteFrequencyType
template<typename THistogram >
typedef HistogramType::TotalRelativeFrequencyType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::TotalRelativeFrequencyType

Member Enumeration Documentation

Texture feature types

Enumerator
Energy 
Entropy 
Correlation 
InverseDifferenceMoment 
Inertia 
ClusterShade 
ClusterProminence 
HaralickCorrelation 
Autocorrelation 
Contrast 
Dissimilarity 
MaximumProbability 
InverseVariance 
Homogeneity1 
ClusterTendency 
Variance 
SumAverage 
SumEntropy 
SumVariance 
DifferenceAverage 
DifferenceEntropy 
DifferenceVariance 
InverseDifferenceMomentNormalized 
InverseDifferenceNormalized 
InverseDifference 
InvalidFeatureName 

Definition at line 212 of file itkEnhancedHistogramToTextureFeaturesFilter.h.

Constructor & Destructor Documentation

template<typename THistogram >
itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::~EnhancedHistogramToTextureFeaturesFilter ( )
inlineprotected

Member Function Documentation

template<typename THistogram >
virtual void itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GenerateData ( )
protectedvirtual
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetAutocorrelation ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetAutocorrelationOutput ( ) const
template<typename THistogram >
virtual const char* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetClusterProminence ( ) const

Return cluster prominence texture value.

template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetClusterProminenceOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetClusterShade ( ) const

Return cluster shade texture value.

template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetClusterShadeOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetClusterTendency ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetClusterTendencyOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetContrast ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetContrastOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetCorrelation ( ) const

return correlation texture value.

template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetCorrelationOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDifferenceAverage ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDifferenceAverageOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDifferenceEntropy ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDifferenceEntropyOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDifferenceVariance ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDifferenceVarianceOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDissimilarity ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetDissimilarityOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetEnergy ( ) const

Return energy texture value.

template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetEnergyOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetEntropy ( ) const

Return entropy texture value.

template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetEntropyOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetFeature ( TextureFeatureName  name)

convenience method to access the texture values

template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetHaralickCorrelation ( ) const

Return Haralick correlation texture value.

template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetHaralickCorrelationOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetHomogeneity1 ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetHomogeneity1Output ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInertia ( ) const

Return inertia texture value.

template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInertiaOutput ( ) const
template<typename THistogram >
const HistogramType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifference ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifferenceMoment ( ) const

Return inverse difference moment texture value.

template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifferenceMomentNormalized ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifferenceMomentNormalizedOutput ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifferenceMomentOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifferenceNormalized ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifferenceNormalizedOutput ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseDifferenceOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseVariance ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetInverseVarianceOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetMaximumProbability ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetMaximumProbabilityOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetSumAverage ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetSumAverageOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetSumEntropy ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetSumEntropyOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetSumVariance ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetSumVarianceOutput ( ) const
template<typename THistogram >
MeasurementType itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetVariance ( ) const
template<typename THistogram >
const MeasurementObjectType* itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::GetVarianceOutput ( ) const
template<typename THistogram >
virtual DataObjectPointer itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::MakeOutput ( DataObjectPointerArraySizeType  )
protectedvirtual
template<typename THistogram >
static Pointer itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::New ( )
static

standard New() method support

template<typename THistogram >
virtual void itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual
template<typename THistogram >
void itk::Statistics::EnhancedHistogramToTextureFeaturesFilter< THistogram >::SetInput ( const HistogramType histogram)

The documentation for this class was generated from the following file: