Medical Imaging Interaction Toolkit
2024.06.00
Medical Imaging Interaction Toolkit
|
This class computes a run length matrix (histogram) from a given image and a mask image if provided. Run length matrces are used for image texture description. More...
#include <itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h>
Public Types | |
typedef EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter | Self |
typedef ProcessObject | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef TImageType | ImageType |
typedef ImageType::Pointer | ImagePointer |
typedef ImageType::ConstPointer | ImageConstPointer |
typedef ImageType::PixelType | PixelType |
typedef ImageType::IndexType | IndexType |
typedef ImageType::RegionType | RegionType |
typedef ImageType::SizeType | RadiusType |
typedef ImageType::OffsetType | OffsetType |
typedef VectorContainer< unsigned char, OffsetType > | OffsetVector |
typedef OffsetVector::Pointer | OffsetVectorPointer |
typedef ImageType::PointType | PointType |
typedef NumericTraits< PixelType >::RealType | MeasurementType |
typedef NumericTraits< PixelType >::RealType | RealType |
typedef Histogram< MeasurementType, THistogramFrequencyContainer > | HistogramType |
typedef HistogramType::Pointer | HistogramPointer |
typedef HistogramType::ConstPointer | HistogramConstPointer |
typedef HistogramType::MeasurementVectorType | MeasurementVectorType |
Public Member Functions | |
virtual const char * | GetClassName () const |
itkStaticConstMacro (ImageDimension, unsigned int, TImageType::ImageDimension) | |
itkStaticConstMacro (DefaultBinsPerAxis, unsigned int, 256) | |
virtual void | SetOffsets (OffsetVector *_arg) |
void | SetOffset (const OffsetType offset) |
void | AddOffsets (const std::vector< OffsetType > offset) |
itkGetModifiableObjectMacro (Offsets, OffsetVector) | |
virtual void | SetNumberOfBinsPerAxis (unsigned int _arg) |
virtual unsigned int | GetNumberOfBinsPerAxis () const |
void | SetPixelValueMinMax (PixelType min, PixelType max) |
virtual PixelType | GetMin () const |
virtual PixelType | GetMax () const |
void | SetDistanceValueMinMax (RealType min, RealType max) |
virtual RealType | GetMinDistance () const |
virtual RealType | GetMaxDistance () const |
void | SetInput (const ImageType *image) |
const ImageType * | GetInput () const |
void | SetMaskImage (const ImageType *image) |
const ImageType * | GetMaskImage () const |
const HistogramType * | GetOutput () const |
double * | GetSiMatrix () const |
virtual void | SetInsidePixelValue (PixelType _arg) |
virtual PixelType | GetInsidePixelValue () const |
Static Public Member Functions | |
static Pointer | New () |
Protected Types | |
typedef DataObject::Pointer | DataObjectPointer |
typedef ProcessObject::DataObjectPointerArraySizeType | DataObjectPointerArraySizeType |
Protected Member Functions | |
EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter () | |
~EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter () override | |
void | PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE |
DataObjectPointer | MakeOutput (DataObjectPointerArraySizeType idx) ITK_OVERRIDE |
void | GenerateData () ITK_OVERRIDE |
void | NormalizeOffsetDirection (OffsetType &offset) |
This class computes a run length matrix (histogram) from a given image and a mask image if provided. Run length matrces are used for image texture description.
This filters creates a grey-level run length matrix from a N-D scalar image. This is another possible texture description. See the following references. M. M. Galloway. Texture analysis using gray level run lengths. Computer Graphics and Image Processing, 4:172-179, 1975.
A. Chu, C. M. Sehgal, and J. F. Greenleaf. Use of gray value distribution of run lengths for texture analysis. Pattern Recognition Letters, 11:415-420, 1990.
B. R. Dasarathy and E. B. Holder. Image characterizations based on joint gray-level run-length distributions. Pattern Recognition Letters, 12:490-502, 1991.
The basic idea is as follows: Given an image and an offset (e.g. (1, -1) for a 2-d image), each element in the joint histogram describes the frequency for a particular distance/ intensity pair within a given image. This distance/intensity pair can be described as follows: we start at a given voxel which has some intensity. We then "jump" to neighboring pixels in increments provided by the offset(s) as long as the pixel to which we are jumping is within the same intensity bin as the original voxel. The distance component is given by the distance from the original to the final voxel satisfying our jumping criteria.
The offset (or offsets) along which the co-occurences are calculated can be set by the user. Traditionally, only one offset is used per histogram, and offset components in the range [-1, 1] are used. For rotation-invariant features averages of features computed over several histograms with different offsets are generally used, instead of computing features from one histogram create with several offsets. Additionally, instead of using offsets of two or more pixels in any direction, multi-resolution techniques (e.g. image pyramids) are generally used to deal with texture at different spatial resolutions.
This class calculates a 2-d histogram of all the intensity/distance pairs in the given image's requested region, for a given set of offsets. That is, if a given offset falls outside of the requested region (or outside the mask) at a particular point, that distance/intensity pair will not be added to the matrix.
The number of histogram bins on each axis can be set (defaults to 256). Also, by default the histogram min and max corresponds to the largest and smallest possible pixel value of that pixel type. To customize the histogram bounds for a given image, the max and min pixel values that will be placed in the histogram can be set manually. NB: The min and max are INCLUSIVE.
Further, the type of histogram frequency container used is an optional template parameter. By default, a dense container is used, but for images with little texture or in cases where the user wants more histogram bins, a sparse container can be used for the histogram instead.
WARNING: This probably won't work for pixels of double or long-double type unless you set the histogram min and max manually. This is because the largest histogram bin by default has max value of the largest possible pixel value plus 1. For double and long-double types, whose "RealType" as defined by the NumericTraits class is the same, and thus cannot hold any larger values, this would cause a float overflow.
IJ article: https://hdl.handle.net/1926/1374
Definition at line 117 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef SmartPointer<const Self> itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::ConstPointer |
Definition at line 124 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
|
protected |
Standard itk::ProcessObject subclass method.
Definition at line 255 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
|
protected |
Definition at line 257 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef HistogramType::ConstPointer itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::HistogramConstPointer |
Definition at line 150 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef HistogramType::Pointer itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::HistogramPointer |
Definition at line 149 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef Histogram<MeasurementType, THistogramFrequencyContainer> itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::HistogramType |
Definition at line 148 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::ConstPointer itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::ImageConstPointer |
Definition at line 134 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::Pointer itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::ImagePointer |
Definition at line 133 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef TImageType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::ImageType |
Definition at line 130 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::IndexType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::IndexType |
Definition at line 136 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef NumericTraits<PixelType>::RealType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::MeasurementType |
Definition at line 144 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef HistogramType::MeasurementVectorType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::MeasurementVectorType |
Definition at line 151 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::OffsetType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::OffsetType |
Definition at line 139 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef VectorContainer<unsigned char, OffsetType> itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::OffsetVector |
Definition at line 140 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef OffsetVector::Pointer itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::OffsetVectorPointer |
Definition at line 141 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::PixelType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::PixelType |
Definition at line 135 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef SmartPointer<Self> itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::Pointer |
Definition at line 123 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::PointType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::PointType |
Definition at line 142 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::SizeType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::RadiusType |
Definition at line 138 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef NumericTraits<PixelType>::RealType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::RealType |
Definition at line 145 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ImageType::RegionType itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::RegionType |
Definition at line 137 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::Self |
Standard typedefs
Definition at line 121 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
typedef ProcessObject itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::Superclass |
Definition at line 122 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
|
protected |
|
inlineoverrideprotected |
Definition at line 251 of file itkEnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter.h.
void itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::AddOffsets | ( | const std::vector< OffsetType > | offset | ) |
|
protected |
This method causes the filter to generate its output.
|
virtual |
Run-time type information (and related methods).
const ImageType* itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::GetInput | ( | ) | const |
Method to get the input image
|
virtual |
const ImageType* itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::GetMaskImage | ( | ) | const |
Method to get the mask image
|
virtual |
Get the max pixel value defining one dimension of the joint histogram.
|
virtual |
Get the max distance value defining one dimension of the joint histogram.
|
virtual |
Get the min pixel value defining one dimension of the joint histogram.
|
virtual |
Get the min distance value defining one dimension of the joint histogram.
|
virtual |
Get number of histogram bins along each axis
const HistogramType* itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::GetOutput | ( | ) | const |
method to get the Histogram
double* itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::GetSiMatrix | ( | ) | const |
method to get the Histogram
itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::itkGetModifiableObjectMacro | ( | Offsets | , |
OffsetVector | |||
) |
Get the current offset(s).
itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::itkStaticConstMacro | ( | DefaultBinsPerAxis | , |
unsigned int | , | ||
256 | |||
) |
Specify the default number of bins per axis
itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::itkStaticConstMacro | ( | ImageDimension | , |
unsigned int | , | ||
TImageType::ImageDimension | |||
) |
ImageDimension constants
|
protected |
|
static |
standard New() method support
|
protected |
Normalize the direction of the offset before it is applied. The last non-zero dimension of the offset has to be positive in order to match to scanning order of the iterator. Only the sign is changed. For example, the input offset (-1, 0) will be normalized as (1, 0).
|
protected |
void itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::SetDistanceValueMinMax | ( | RealType | min, |
RealType | max | ||
) |
Set the min and max (inclusive) pixel value that will be used in generating the histogram.
void itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::SetInput | ( | const ImageType * | image | ) |
|
virtual |
Set the pixel value of the mask that should be considered "inside" the object. Defaults to 1.
void itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::SetMaskImage | ( | const ImageType * | image | ) |
Method to set the mask image
|
virtual |
Set number of histogram bins along each axis
void itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::SetOffset | ( | const OffsetType | offset | ) |
Set offset over which the intensity/distance pairs will be computed. Invoking this function clears the previous offset(s). Note: for each individual offset, the rightmost non-zero offset element must be positive. For example, in the offset list of a 2D image, (1, 0) means the offset along x-axis. (1, 0) has to be set instead of (-1, 0). This is required from the iterating order of pixel iterator.
|
virtual |
Set the offsets over which the intensity/distance pairs will be computed. Invoking this function clears the previous offsets. Note: for each individual offset in the OffsetVector, the rightmost non-zero offset element must be positive. For example, in the offset list of a 2D image, (1, 0) means the offset along x-axis. (1, 0) has to be set instead of (-1, 0). This is required from the iterating order of pixel iterator.
void itk::Statistics::EnhancedScalarImageToNeighbourhoodGreyLevelDifferenceMatrixFilter< TImageType, THistogramFrequencyContainer >::SetPixelValueMinMax | ( | PixelType | min, |
PixelType | max | ||
) |
Set the min and max (inclusive) pixel value that will be used in generating the histogram.