Texture features can be extracted with the help of image filters based on texture analysis methods like Haralick and structural feature set (SFS).
This application computes Haralick, advanced and higher order texture features on every pixel in the selected channel of the input image. The output image is multi band with a feature per band.
The HaralickTextureExtraction application has the following input parameters:
The available values for -texture with their relevant features are:
”Energy” = f1 = ∑i,jg(i,j)2
”Entropy” = f2 = −∑i,jg(i,j)log2g(i,j), or 0 if g(i,j) = 0
”Correlation” = f3 = ∑i,j
”Inverse Difference Moment” = f4 = ∑i,jg(i,j)
”Inertia” = f5 = ∑i,j(i−j)2g(i,j) (sometimes called ”contrast”)
”Cluster Shade” = f6 = ∑i,j((i−μ)+(j−μ))3g(i,j)
”Cluster Prominence” = f7 = ∑i,j((i−μ)+(j−μ))4g(i,j)
”Haralick’s Correlation” = f8 = where μt and σt are the mean and standard
deviation of the row (or column, due to symmetry) sums. Above, μ = (weighted pixel average)
= ∑i,ji⋅g(i,j) = ∑i,jj⋅g(i,j) (due to matrix symmetry), and σ = (weighted pixel variance)
= ∑i,j(i−μ)2 ⋅g(i,j) = ∑i,j(j−μ)2 ⋅g(i,j) (due to matrix symmetry).
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 taken 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).
”Mean” = ∑i,jig(i,j)
”Sum of squares: Variance” = f4 = ∑i,j(i−μ)2g(i,j)
”Dissimilarity” = f5 = ∑i,j(i−j)g(i,j)2
”Sum average” = f6 = −∑iigx+y(i)
”Sum Variance” = f7 = ∑i(i−f8)2gx+y(i)
”Sum Entropy” = f8 = −∑igx+y(i)log(gx+y(i))
”Difference variance” = f10 = varianceofgx−y(i)
”Difference entropy” = f11 = −∑igx−y(i)log(gx−y(i))
”Information Measures of Correlation IC1” = f12 =
”Information Measures of Correlation IC2” = f13 =
Above, μ = (weighted pixel average) = ∑i,ji⋅g(i,j) = ∑i,jj⋅g(i,j) (due to matrix summetry), and
gx+y(k) = ∑i∑jg(i) where i+j = k and k = 2,3,..,2Ng and
gx−y(k) = ∑i∑jg(i) where i−j = k and k = 0,1,..,Ng−1
”Short Run Emphasis” = SRE = ∑i,j
”Long Run Emphasis” = LRE = ∑i,jp(i,j)∗j2
”Grey-Level Nonuniformity” = GLN = ∑i
2
”Run Length Nonuniformity” = RLN = ∑j
2
”Run Percentage” = RP =
”Low Grey-Level Run Emphasis” = LGRE = ∑i,j
”High Grey-Level Run Emphasis” = HGRE = ∑i,jp(i,j)∗i2
”Short Run Low Grey-Level Emphasis” = SRLGE = ∑i,j
”Short Run High Grey-Level Emphasis” = SRHGE = ∑i,j
”Long Run Low Grey-Level Emphasis” = LRLGE = ∑i,j
”Long Run High Grey-Level Emphasis” = LRHGE = ∑i,jp(i,j)i2j2
The application can be used like this:
This application computes Structural Feature Set textures on every pixel in the selected channel of the input image. The output image is multi band with a feature per band. The 6 output texture features are SFS’Length, SFS’Width, SFS’PSI, SFS’W-Mean, SFS’Ratio and SFS’SD. They are provided in this exact order in the output image.
It is based on line direction estimation and described in the following publication. Please refer to Xin Huang, Liangpei Zhang and Pingxiang Li publication, Classification and Extraction of Spatial Features in Urban Areas Using High-Resolution Multispectral Imagery. IEEE Geoscience and Remote Sensing Letters, vol. 4, n. 2, 2007, pp 260-264.
The texture is computed for each pixel using its neighborhood. User can set the spatial threshold that is the max line length, the spectral threshold that is the max difference authorized between a pixel of the line and the center pixel of the current neighborhood. The adjustement constant alpha and the ratio Maximum Consideration Number, which describes the shape contour around the central pixel, are used to compute the w−mean value.
The SFSTextureExtraction application has the following input parameters:
The application can be used like this: