特征提取之灰度游程(行程)矩阵-GLRLM
Matlab特征提取之灰度游程(行程)矩阵-GLRLM
前几天参加数学建模比赛,发现全网图形识别检测领域与灰度游程矩阵特征提取的matlab的参考材料很少,下面给出了求灰度游程矩阵以及部分特征提取的代码,供大家交流。
灰度游程(行程)矩阵
一幅图像的灰度游程矩阵反映了图像灰度关于方向,相邻间隔和变化幅度等
综合信息。灰度游程矩阵是对分析影像的局部模式和其排列规则基础之一。灰
度游程矩阵可以实现对一幅图像中同一方向同一灰度值连续出现个数的统计。在
一幅图像上,在某一方向上连续的像素点具有相同的灰度值,灰度游程矩阵就是
通过对这些像素点的分布进行统计得到纹理特征。本文中,我们使用P(i,j|θ)代表
灰度游程矩阵,(i,j)点代表灰度为i的像素在图像θ方向连续出现j次的计数。此
P(i,j|θ)代表灰度游程矩阵,θ一般有0度、45度、90度和135度。
N g \mathrm{N}_{\mathrm{g}} Ng表示图像上的灰度级数目
N r N_{\mathrm{r}} Nr表示图像上不同游程的数目
N p \mathrm{N}_{\mathrm{p}} Np表示图像上像素点的数目:
举个例子:矩阵A为:
( 0 0 1 1 2 2 3 3 1 1 2 2 3 3 0 0 2 2 3 3 0 0 1 1 3 3 0 0 1 1 2 2 ) \left( \begin{array}{cccccccc}{0} & {0} & {1} & {1} & {2} & {2} & {3} & {3} \\ {1} & {1} & {2} & {2} & {3} & {3} & {0} & {0} \\ {2} & {2} & {3} & {3} & {0} & {0} & {1} & {1} \\ {3} & {3} & {0} & {0} & {1} & {1} & {2} & {2}\end{array}\right) ⎝⎜⎜⎛01230123123012302301230130123012⎠⎟⎟⎞
那么P(i,j|00)(θ=00时),水平统计各像素出现的次数:
P(i,j|0)= ( 0 4 0 0 0 4 0 0 0 4 0 0 0 4 0 0 ) \left( \begin{array}{cccc}{0} & {4} & {0} & {0} \\ {0} & {4} & {0} & {0} \\ {0} & {4} & {0} & {0} \\ {0} & {4} & {0} & {0}\end{array}\right) ⎝⎜⎜⎛0000444400000000⎠⎟⎟⎞
0出现1次的次数为0,0出现两次的次数为4,0出现3次次数为0,以此类推…
同理θ=450:
P(i,j|450)= ( 4 2 0 0 4 2 0 0 4 2 0 0 2 3 0 0 ) \left( \begin{array}{cccc}{4} & {2} & {0} & {0} \\ {4} & {2} & {0} & {0} \\ {4} & {2} & {0} & {0} \\ {2} & {3} & {0} & {0}\end{array}\right) ⎝⎜⎜⎛4442222300000000⎠⎟⎟⎞
同理θ=900:
P(i,j|900)= ( 8 0 0 0 8 0 0 0 8 0 0 0 8 0 0 0 ) \left( \begin{array}{cccc}{8} & {0} & {0} & {0} \\ {8} & {0} & {0} & {0} \\ {8} & {0} & {0} & {0} \\ {8} & {0} & {0} & {0}\end{array}\right) ⎝⎜⎜⎛8888000000000000⎠⎟⎟⎞
代码:
// An highlighted block
%-----------------------------------
% author:Courage
% name:tdcup.model2.灰度游程矩阵
%-----------------------------------
function [glrlms,si]= grayrlmatrix(varargin)
[i, offset, nl, gl] =