OTB  9.0.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
otb::HaralickTexturesImageFunction< TInputImage, TCoordRep > Class Template Reference

#include <otbHaralickTexturesImageFunction.h>

+ Inheritance diagram for otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >:
+ Collaboration diagram for otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >:

Public Types

typedef itk::SmartPointer< const SelfConstPointer
 
typedef Superclass::ContinuousIndexType ContinuousIndexType
 
typedef CooccurrenceIndexedListType::ConstPointer CooccurrenceIndexedListConstPointerType
 
typedef CooccurrenceIndexedListType::Pointer CooccurrenceIndexedListPointerType
 
typedef GreyLevelCooccurrenceIndexedList< InputPixelTypeCooccurrenceIndexedListType
 
typedef CooccurrenceIndexedListType::IndexType CooccurrenceIndexType
 
typedef TCoordRep CoordRepType
 
typedef Superclass::IndexType IndexType
 
typedef InputImageType::Pointer InputImagePointerType
 
typedef TInputImage InputImageType
 
typedef InputImageType::PixelType InputPixelType
 
typedef InputImageType::RegionType InputRegionType
 
typedef InputImageType::OffsetType OffsetType
 
typedef Superclass::OutputType OutputType
 
typedef CooccurrenceIndexedListType::PixelValueType PixelValueType
 
typedef itk::SmartPointer< SelfPointer
 
typedef Superclass::PointType PointType
 
typedef CooccurrenceIndexedListType::RelativeFrequencyType RelativeFrequencyType
 
typedef OutputType::ValueType ScalarRealType
 
typedef HaralickTexturesImageFunction Self
 
typedef InputRegionType::SizeType SizeType
 
typedef itk::ImageFunction< TInputImage, itk::FixedArray< typename itk::NumericTraits< typename TInputImage::PixelType >::RealType, 8 >, TCoordRep > Superclass
 
typedef VectorType::const_iterator VectorConstIteratorType
 
typedef VectorType::iterator VectorIteratorType
 
typedef CooccurrenceIndexedListType::VectorType VectorType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
OutputType EvaluateAtIndex (const IndexType &index) const override
 
virtual const char * GetNameOfClass () const
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static const unsigned int ImageDimension = InputImageType::ImageDimension
 
unsigned int m_NeighborhoodRadius
 
OffsetType m_Offset
 
unsigned int m_NumberOfBinsPerAxis
 
InputPixelType m_InputImageMinimum
 
InputPixelType m_InputImageMaximum
 
OutputType Evaluate (const PointType &point) const override
 
OutputType EvaluateAtContinuousIndex (const ContinuousIndexType &cindex) const override
 
virtual void SetNeighborhoodRadius (unsigned int _arg)
 
virtual const unsigned int & GetNeighborhoodRadius () const
 
virtual void SetOffset (OffsetType _arg)
 
virtual OffsetType GetOffset ()
 
virtual void SetNumberOfBinsPerAxis (unsigned int _arg)
 
virtual unsigned int GetNumberOfBinsPerAxis ()
 
virtual void SetInputImageMinimum (InputPixelType _arg)
 
virtual InputPixelType GetInputImageMinimum ()
 
virtual void SetInputImageMaximum (InputPixelType _arg)
 
virtual InputPixelType GetInputImageMaximum ()
 
 HaralickTexturesImageFunction ()
 
 ~HaralickTexturesImageFunction () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
 HaralickTexturesImageFunction (const Self &)=delete
 
void operator= (const Self &)=delete
 
double GetPixelValueTolerance () const
 

Detailed Description

template<class TInputImage, class TCoordRep = double>
class otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >

Compute the 8 Haralick texture indices on the neighborhood of the point.

To improve the speed of computation, a variant of Grey Level Co-occurrence Matrix(GLCM) called Grey Level Co-occurrence Indexed List (GLCIL) is used. Given below is the mathematical explanation on the computation of each textures. Here $ g(i, j) $ is the frequency of element in the GLCIL whose index is i, j. GLCIL stores a pair of frequency of two pixels from the given offset and the cell index (i, j) of the pixel in the neighborhood window. :(where each element in GLCIL is a pair of pixel index and it's frequency, $ g(i, j) $ is the frequency value of the pair having index is i, j).

"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)

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.

David A. Clausi and Yongping Zhao. 2002. Rapid extraction of image texture by co-occurrence using a hybrid data structure. Comput. Geosci. 28, 6 (July 2002), 763-774. DOI=10.1016/S0098-3004(01)00108-X http://dx.doi.org/10.1016/S0098-3004(01)00108-X

de O.Bastos, L.; Liatsis, P.; Conci, A., Automatic texture segmentation based on k-means clustering and efficient calculation of co-occurrence features. Systems, Signals and Image Processing, 2008. IWSSIP 2008. 15th International Conference on , vol., no., pp.141,144, 25-28 June 2008 doi: 10.1109/IWSSIP.2008.4604387

See also
otb::GreyLevelCo-occurrenceIndexedList

Definition at line 95 of file otbHaralickTexturesImageFunction.h.

Member Typedef Documentation

◆ ConstPointer

template<class TInputImage , class TCoordRep = double>
typedef itk::SmartPointer<const Self> otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::ConstPointer

Definition at line 103 of file otbHaralickTexturesImageFunction.h.

◆ ContinuousIndexType

template<class TInputImage , class TCoordRep = double>
typedef Superclass::ContinuousIndexType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::ContinuousIndexType

Definition at line 114 of file otbHaralickTexturesImageFunction.h.

◆ CooccurrenceIndexedListConstPointerType

template<class TInputImage , class TCoordRep = double>
typedef CooccurrenceIndexedListType::ConstPointer otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::CooccurrenceIndexedListConstPointerType

Definition at line 128 of file otbHaralickTexturesImageFunction.h.

◆ CooccurrenceIndexedListPointerType

template<class TInputImage , class TCoordRep = double>
typedef CooccurrenceIndexedListType::Pointer otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::CooccurrenceIndexedListPointerType

Definition at line 127 of file otbHaralickTexturesImageFunction.h.

◆ CooccurrenceIndexedListType

template<class TInputImage , class TCoordRep = double>
typedef GreyLevelCooccurrenceIndexedList<InputPixelType> otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::CooccurrenceIndexedListType

Definition at line 126 of file otbHaralickTexturesImageFunction.h.

◆ CooccurrenceIndexType

template<class TInputImage , class TCoordRep = double>
typedef CooccurrenceIndexedListType::IndexType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::CooccurrenceIndexType

Definition at line 129 of file otbHaralickTexturesImageFunction.h.

◆ CoordRepType

template<class TInputImage , class TCoordRep = double>
typedef TCoordRep otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::CoordRepType

Definition at line 137 of file otbHaralickTexturesImageFunction.h.

◆ IndexType

template<class TInputImage , class TCoordRep = double>
typedef Superclass::IndexType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::IndexType

Definition at line 113 of file otbHaralickTexturesImageFunction.h.

◆ InputImagePointerType

template<class TInputImage , class TCoordRep = double>
typedef InputImageType::Pointer otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::InputImagePointerType

Definition at line 116 of file otbHaralickTexturesImageFunction.h.

◆ InputImageType

template<class TInputImage , class TCoordRep = double>
typedef TInputImage otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::InputImageType

InputImageType typedef support.

Definition at line 109 of file otbHaralickTexturesImageFunction.h.

◆ InputPixelType

template<class TInputImage , class TCoordRep = double>
typedef InputImageType::PixelType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::InputPixelType

Definition at line 117 of file otbHaralickTexturesImageFunction.h.

◆ InputRegionType

template<class TInputImage , class TCoordRep = double>
typedef InputImageType::RegionType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::InputRegionType

Definition at line 118 of file otbHaralickTexturesImageFunction.h.

◆ OffsetType

template<class TInputImage , class TCoordRep = double>
typedef InputImageType::OffsetType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::OffsetType

Definition at line 119 of file otbHaralickTexturesImageFunction.h.

◆ OutputType

template<class TInputImage , class TCoordRep = double>
typedef Superclass::OutputType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::OutputType

Definition at line 123 of file otbHaralickTexturesImageFunction.h.

◆ PixelValueType

template<class TInputImage , class TCoordRep = double>
typedef CooccurrenceIndexedListType::PixelValueType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::PixelValueType

Definition at line 130 of file otbHaralickTexturesImageFunction.h.

◆ Pointer

template<class TInputImage , class TCoordRep = double>
typedef itk::SmartPointer<Self> otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::Pointer

Definition at line 102 of file otbHaralickTexturesImageFunction.h.

◆ PointType

template<class TInputImage , class TCoordRep = double>
typedef Superclass::PointType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::PointType

Definition at line 115 of file otbHaralickTexturesImageFunction.h.

◆ RelativeFrequencyType

template<class TInputImage , class TCoordRep = double>
typedef CooccurrenceIndexedListType::RelativeFrequencyType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::RelativeFrequencyType

Definition at line 131 of file otbHaralickTexturesImageFunction.h.

◆ ScalarRealType

template<class TInputImage , class TCoordRep = double>
typedef OutputType::ValueType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::ScalarRealType

Definition at line 124 of file otbHaralickTexturesImageFunction.h.

◆ Self

template<class TInputImage , class TCoordRep = double>
typedef HaralickTexturesImageFunction otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::Self

Standard class typedefs.

Definition at line 100 of file otbHaralickTexturesImageFunction.h.

◆ SizeType

template<class TInputImage , class TCoordRep = double>
typedef InputRegionType::SizeType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::SizeType

Definition at line 120 of file otbHaralickTexturesImageFunction.h.

◆ Superclass

template<class TInputImage , class TCoordRep = double>
typedef itk::ImageFunction<TInputImage, itk::FixedArray<typename itk::NumericTraits<typename TInputImage::PixelType>::RealType, 8>, TCoordRep> otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::Superclass

Definition at line 101 of file otbHaralickTexturesImageFunction.h.

◆ VectorConstIteratorType

template<class TInputImage , class TCoordRep = double>
typedef VectorType::const_iterator otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::VectorConstIteratorType

Definition at line 135 of file otbHaralickTexturesImageFunction.h.

◆ VectorIteratorType

template<class TInputImage , class TCoordRep = double>
typedef VectorType::iterator otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::VectorIteratorType

Definition at line 134 of file otbHaralickTexturesImageFunction.h.

◆ VectorType

template<class TInputImage , class TCoordRep = double>
typedef CooccurrenceIndexedListType::VectorType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::VectorType

Definition at line 132 of file otbHaralickTexturesImageFunction.h.

Constructor & Destructor Documentation

◆ HaralickTexturesImageFunction() [1/2]

template<class TInputImage , class TCoordRep >
otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::HaralickTexturesImageFunction
protected

Constructor

Definition at line 38 of file otbHaralickTexturesImageFunction.hxx.

◆ ~HaralickTexturesImageFunction()

template<class TInputImage , class TCoordRep = double>
otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::~HaralickTexturesImageFunction ( )
inlineoverrideprotected

Radius of the neighborhood over which to compute the textures

Definition at line 198 of file otbHaralickTexturesImageFunction.h.

◆ HaralickTexturesImageFunction() [2/2]

template<class TInputImage , class TCoordRep = double>
otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::HaralickTexturesImageFunction ( const Self )
privatedelete

Radius of the neighborhood over which to compute the textures

Member Function Documentation

◆ CreateAnother()

template<class TInputImage , class TCoordRep = double>
virtual::itk::LightObject::Pointer otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::CreateAnother ( void  ) const

◆ Evaluate()

template<class TInputImage , class TCoordRep = double>
OutputType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::Evaluate ( const PointType point) const
inlineoverride

Evaluate the function at non-integer positions

Definition at line 146 of file otbHaralickTexturesImageFunction.h.

◆ EvaluateAtContinuousIndex()

template<class TInputImage , class TCoordRep = double>
OutputType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::EvaluateAtContinuousIndex ( const ContinuousIndexType cindex) const
inlineoverride

Radius of the neighborhood over which to compute the textures

Definition at line 152 of file otbHaralickTexturesImageFunction.h.

◆ EvaluateAtIndex()

template<class TInputImage , class TCoordRep >
HaralickTexturesImageFunction< TInputImage, TCoordRep >::OutputType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::EvaluateAtIndex ( const IndexType index) const
override

Evalulate the function at specified index

Definition at line 56 of file otbHaralickTexturesImageFunction.hxx.

◆ GetInputImageMaximum()

template<class TInputImage , class TCoordRep = double>
virtual InputPixelType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::GetInputImageMaximum ( )
virtual

Get the input image maximum

◆ GetInputImageMinimum()

template<class TInputImage , class TCoordRep = double>
virtual InputPixelType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::GetInputImageMinimum ( )
virtual

Get the input image minimum

◆ GetNameOfClass()

template<class TInputImage , class TCoordRep = double>
virtual const char* otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

◆ GetNeighborhoodRadius()

template<class TInputImage , class TCoordRep = double>
virtual const unsigned int& otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::GetNeighborhoodRadius ( ) const
virtual

Get the radius of the neighborhood over which the statistics are evaluated

◆ GetNumberOfBinsPerAxis()

template<class TInputImage , class TCoordRep = double>
virtual unsigned int otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::GetNumberOfBinsPerAxis ( )
virtual

Get the number of bin per axis

◆ GetOffset()

template<class TInputImage , class TCoordRep = double>
virtual OffsetType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::GetOffset ( )
virtual

Get the offset for co-occurence computation

◆ GetPixelValueTolerance()

template<class TInputImage , class TCoordRep = double>
double otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::GetPixelValueTolerance ( ) const
inlineprivate

Radius of the neighborhood over which to compute the textures

Definition at line 223 of file otbHaralickTexturesImageFunction.h.

◆ New()

template<class TInputImage , class TCoordRep = double>
static Pointer otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::New ( )
static

Method for creation through the object factory.

◆ operator=()

template<class TInputImage , class TCoordRep = double>
void otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::operator= ( const Self )
privatedelete

Radius of the neighborhood over which to compute the textures

◆ PrintSelf()

template<class TInputImage , class TCoordRep >
void otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

Radius of the neighborhood over which to compute the textures

Definition at line 44 of file otbHaralickTexturesImageFunction.hxx.

◆ SetInputImageMaximum()

template<class TInputImage , class TCoordRep = double>
virtual void otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::SetInputImageMaximum ( InputPixelType  _arg)
virtual

Set the input image maximum

◆ SetInputImageMinimum()

template<class TInputImage , class TCoordRep = double>
virtual void otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::SetInputImageMinimum ( InputPixelType  _arg)
virtual

Set the input image minimum

◆ SetNeighborhoodRadius()

template<class TInputImage , class TCoordRep = double>
virtual void otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::SetNeighborhoodRadius ( unsigned int  _arg)
virtual

Set the radius of the neighborhood over which the statistics are evaluated

◆ SetNumberOfBinsPerAxis()

template<class TInputImage , class TCoordRep = double>
virtual void otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::SetNumberOfBinsPerAxis ( unsigned int  _arg)
virtual

Set the number of bin per axis

◆ SetOffset()

template<class TInputImage , class TCoordRep = double>
virtual void otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::SetOffset ( OffsetType  _arg)
virtual

Set the offset for co-occurence computation

Member Data Documentation

◆ ImageDimension

template<class TInputImage , class TCoordRep = double>
const unsigned int otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::ImageDimension = InputImageType::ImageDimension
static

Dimension of the underlying image.

Definition at line 140 of file otbHaralickTexturesImageFunction.h.

◆ m_InputImageMaximum

template<class TInputImage , class TCoordRep = double>
InputPixelType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::m_InputImageMaximum
private

Input image maximum

Definition at line 220 of file otbHaralickTexturesImageFunction.h.

◆ m_InputImageMinimum

template<class TInputImage , class TCoordRep = double>
InputPixelType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::m_InputImageMinimum
private

Input image minimum

Definition at line 217 of file otbHaralickTexturesImageFunction.h.

◆ m_NeighborhoodRadius

template<class TInputImage , class TCoordRep = double>
unsigned int otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::m_NeighborhoodRadius
private

Radius of the neighborhood over which to compute the textures

Definition at line 208 of file otbHaralickTexturesImageFunction.h.

◆ m_NumberOfBinsPerAxis

template<class TInputImage , class TCoordRep = double>
unsigned int otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::m_NumberOfBinsPerAxis
private

Number of bins per axis

Definition at line 214 of file otbHaralickTexturesImageFunction.h.

◆ m_Offset

template<class TInputImage , class TCoordRep = double>
OffsetType otb::HaralickTexturesImageFunction< TInputImage, TCoordRep >::m_Offset
private

Offset for co-occurences generation

Definition at line 211 of file otbHaralickTexturesImageFunction.h.


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