-
Notifications
You must be signed in to change notification settings - Fork 102
NGTDM_global_features
The feature definitions are available in IBSI section 3.10
1. Coarseness is an inverse measure of the level of the spatial rate of change in intensity (Amadasun and King, 1989). A higher value indicates a lower spatial change rate and a locally more uniform texture.
2. Contrast depends on the dynamic range of the grey levels as well as the spatial frequency of intensity changes (Amadasun and King, 1989). Higher value indicates large changes between voxels and their neighborhood.
3. Busyness measures changes in grey levels between neighboring voxels. A higher value indicates rapid changes of intensity between pixels and its neighborhood.
4. Complexity measures non-uniformity and rapid changes in grey levels. A higher value indicates non-uniform and rapid changes in grey levels.
5. Strength [Aetrs et al 2014] measures the primitives in an image. Its value is high when the primitives are easily defined and visible, i.e. an image with slow change in intensity but more large coarse differences in gray level intensities.
where
is the number of voxels with gray level i.
is the number of voxels with a valid region; at least 1 neighbor.
is the the gray level probability.
is the sum of absolute differences for gray level i.
is the number of gray levels where
Let quantizedM be the discretized scan matrix. The number of voxels in the region of interest is calculated as
numVoxels = sum(~isnan(quantizedM(:)));
Now, let's build the neighborhood gray tone difference (NGTDM) matrix. The NGTDM can be built using 2-d or 3-d neighborhoods. The patchRadius3dV
argument to the calcNGTDM
function controls this.
patchRadius3dV= [1 1 1]; % [1 1 1]: 3d, [1 1 0]: 2d
The NGTDM is computed as follows:
[s,p] = calcNGTDM(quantizedM, patchRadius3dV, numGrLevels);
Generate flags for individual features
szmFeatC = {'sae', 'lae', 'gln', 'glv', 'szv', 'glnNorm', 'szn', 'sznNorm',...
'zp', 'lglze', 'hglze', 'salgle', 'sahgle', 'lalgle', 'larhgle'};
szmFlagS = cell2struct(num2cell(ones(size(szmFeatC ))),szmFeatC,2);
Finally, the scalar features from the NGTDM matrix are obtained as follows:
featureS = ngtdmToScalarFeatures(s,p,numVoxels);