#include <itkScalarImageToRunLengthMatrixFilter.h>
This class computes a run length matrix (histogram) from a given image and a mask image if provided. Run length matrices 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 [39], [24] and [29].
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-occurrences 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://doi.org/10.54294/ex0itu
Definition at line 96 of file itkScalarImageToRunLengthMatrixFilter.h.
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | DefaultBinsPerAxis = 256 |
static constexpr unsigned int | ImageDimension = TImageType::ImageDimension |
Protected Types | |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType |
Private Attributes | |
PixelType | m_InsidePixelValue {} |
MeasurementVectorType | m_LowerBound {} |
PixelType | m_Max {} |
RealType | m_MaxDistance {} |
PixelType | m_Min {} |
RealType | m_MinDistance {} |
unsigned int | m_NumberOfBinsPerAxis {} |
OffsetVectorPointer | m_Offsets {} |
MeasurementVectorType | m_UpperBound {} |
Additional Inherited Members | |
![]() | |
template<typename TSourceObject> | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
![]() | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::ConstPointer = SmartPointer<const Self> |
Definition at line 103 of file itkScalarImageToRunLengthMatrixFilter.h.
|
protected |
Standard itk::ProcessObject subclass method.
Definition at line 237 of file itkScalarImageToRunLengthMatrixFilter.h.
|
protected |
Definition at line 239 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::HistogramConstPointer = typename HistogramType::ConstPointer |
Definition at line 128 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::HistogramPointer = typename HistogramType::Pointer |
Definition at line 127 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::HistogramType = Histogram<MeasurementType, THistogramFrequencyContainer> |
Definition at line 126 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::ImageConstPointer = typename ImageType::ConstPointer |
Definition at line 113 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::ImagePointer = typename ImageType::Pointer |
Definition at line 112 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::ImageType = TImageType |
Definition at line 111 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::IndexType = typename ImageType::IndexType |
Definition at line 115 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::MeasurementType = typename NumericTraits<PixelType>::RealType |
Definition at line 123 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::MeasurementVectorType = typename HistogramType::MeasurementVectorType |
Definition at line 129 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::OffsetType = typename ImageType::OffsetType |
Definition at line 118 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::OffsetVector = VectorContainer<unsigned char, OffsetType> |
Definition at line 119 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::OffsetVectorPointer = typename OffsetVector::Pointer |
Definition at line 120 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::PixelType = typename ImageType::PixelType |
Definition at line 114 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::Pointer = SmartPointer<Self> |
Definition at line 102 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::PointType = typename ImageType::PointType |
Definition at line 121 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::RadiusType = typename ImageType::SizeType |
Definition at line 117 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::RealType = typename NumericTraits<PixelType>::RealType |
Definition at line 124 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::RegionType = typename ImageType::RegionType |
Definition at line 116 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::Self = ScalarImageToRunLengthMatrixFilter |
Standard type alias
Definition at line 100 of file itkScalarImageToRunLengthMatrixFilter.h.
using itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::Superclass = ProcessObject |
Definition at line 101 of file itkScalarImageToRunLengthMatrixFilter.h.
|
protected |
|
overrideprotecteddefault |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
|
overrideprotectedvirtual |
This method causes the filter to generate its output.
Reimplemented from itk::ProcessObject.
const ImageType * itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::GetInput | ( | ) | const |
Method to get the input image
|
virtual |
Set the pixel value of the mask that should be considered "inside" the object. Defaults to 1.
const ImageType * itk::Statistics::ScalarImageToRunLengthMatrixFilter< 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 the current offset(s).
|
overridevirtual |
Reimplemented from itk::ProcessObject.
|
virtual |
Get number of histogram bins along each axis
|
virtual |
const HistogramType * itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::GetOutput | ( | ) | const |
method to get the Histogram
|
protectedvirtual |
Make a DataObject of the correct type to used as the specified output.
Every ProcessObject subclass must be able to create a DataObject that can be used as a specified output. This method is automatically called when DataObject::DisconnectPipeline() is called. DataObject::DisconnectPipeline, disconnects a data object from being an output of its current source. When the data object is disconnected, the ProcessObject needs to construct a replacement output data object so that the ProcessObject is in a valid state. So DataObject::DisconnectPipeline eventually calls ProcessObject::MakeOutput. Note that MakeOutput always returns a itkSmartPointer to a DataObject. ImageSource and MeshSource override this method to create the correct type of image and mesh respectively. If a filter has multiple outputs of different types, then that filter must provide an implementation of MakeOutput().
Reimplemented from itk::ProcessObject.
|
overrideprotectedvirtual |
Make a DataObject of the correct type to used as the specified output.
Every ProcessObject subclass must be able to create a DataObject that can be used as a specified output. This method is automatically called when DataObject::DisconnectPipeline() is called. DataObject::DisconnectPipeline, disconnects a data object from being an output of its current source. When the data object is disconnected, the ProcessObject needs to construct a replacement output data object so that the ProcessObject is in a valid state. So DataObject::DisconnectPipeline eventually calls ProcessObject::MakeOutput. Note that MakeOutput always returns a itkSmartPointer to a DataObject. ImageSource and MeshSource override this method to create the correct type of image and mesh respectively. If a filter has multiple outputs of different types, then that filter must provide an implementation of MakeOutput().
Reimplemented from itk::ProcessObject.
|
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).
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::ProcessObject.
void itk::Statistics::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::SetDistanceValueMinMax | ( | RealType | min, |
RealType | max ) |
Set the min and max (inclusive) pixel value that will be used in generating the histogram.
|
virtual |
Method to set the input image
Reimplemented from itk::ProcessObject.
void itk::Statistics::ScalarImageToRunLengthMatrixFilter< 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::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::SetMaskImage | ( | const ImageType * | image | ) |
Method to set the mask image
|
virtual |
Set number of histogram bins along each axis
void itk::Statistics::ScalarImageToRunLengthMatrixFilter< 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::ScalarImageToRunLengthMatrixFilter< TImageType, THistogramFrequencyContainer >::SetPixelValueMinMax | ( | PixelType | min, |
PixelType | max ) |
Set the min and max (inclusive) pixel value that will be used in generating the histogram.
|
staticconstexpr |
Specify the default number of bins per axis
Definition at line 135 of file itkScalarImageToRunLengthMatrixFilter.h.
|
staticconstexpr |
ImageDimension constants
Definition at line 132 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 264 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 266 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 261 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 263 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 260 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 262 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 259 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 268 of file itkScalarImageToRunLengthMatrixFilter.h.
|
private |
Definition at line 267 of file itkScalarImageToRunLengthMatrixFilter.h.