numpyradiomics.glrlm#
- numpyradiomics.glrlm(image, mask, binWidth=25, levels=None)[source]#
Compute 16 Pyradiomics-style GLRLM (Gray Level Run Length Matrix) features.
The GLRLM quantifies gray level runs, which are defined as the length in number of pixels, of consecutive pixels that have the same gray level value. The matrix is computed for the 13 principal directions in 3D (or 4 in 2D) and the features are averaged over these angles.
- Parameters:
image (np.ndarray) – 3D image array containing voxel intensities.
mask (np.ndarray) – 3D mask array (same shape as image), where non-zero values indicate the ROI.
binWidth (float, optional) – Width of bins for discretization. Default is 25.
levels (int, optional) – Number of levels for discretization. If None, calculated from binWidth.
- Returns:
- Dictionary containing the 16 GLRLM features (averaged over all directions):
ShortRunEmphasis: Emphasis on short runs.
LongRunEmphasis: Emphasis on long runs.
GrayLevelNonUniformity: Variability of gray-level values in the image.
GrayLevelNonUniformityNormalized: Normalized version of GLN.
RunLengthNonUniformity: Variability of run lengths.
RunLengthNonUniformityNormalized: Normalized version of RLN.
RunPercentage: Fraction of realized runs versus potential runs (coarseness).
LowGrayLevelRunEmphasis: Distribution of low gray-level values.
HighGrayLevelRunEmphasis: Distribution of high gray-level values.
ShortRunLowGrayLevelRunEmphasis: Joint distribution of short runs and low gray levels.
ShortRunHighGrayLevelRunEmphasis: Joint distribution of short runs and high gray levels.
LongRunLowGrayLevelRunEmphasis: Joint distribution of long runs and low gray levels.
LongRunHighGrayLevelRunEmphasis: Joint distribution of long runs and high gray levels.
GrayLevelVariance: Variance of gray levels in runs.
RunLengthVariance: Variance of run lengths.
RunEntropy: Randomness/variability in run lengths and gray levels.
- Return type:
Example
>>> import numpyradiomics as npr >>> # Generate a noisy ellipsoid >>> img, mask = npr.dro.noisy_ellipsoid(radii_mm=(15, 15, 15), intensity_range=(0, 100)) >>> >>> # Compute GLRLM features >>> feats = npr.glrlm(img, mask, binWidth=10) >>> >>> print(f"RunPercentage: {feats['RunPercentage']:.4f}") RunPercentage: 0.8241