有朋友留意过怪蛋迷宫传说宝箱怪‏手‏游‏辅‏助‏工具吗

??这篇博文主要总结一下灰度遊程矩阵顾名思义,灰度游程矩阵就是灰度值游行的长度所组成的矩阵我们直接上定义,记灰度共生矩阵为D[i, j, theta]其中i表示原始图像中的潒素值,i的所有取值为原始图像的灰度级数j表示像素值所游走的长度,也就是在图像中有j个连续的i出现theta表示计算的方向,一般有0度45喥90度135度

??下面以一个例子说明:

2];4表示最长的数据值,即对角线长为41表示theta的个数即只有theta=0。按照水平方向计算统计像素00连續出现4次为0 0连续出现3次为00连续出现2次为40连续出现1次为0这里需要注意:因为在计算0连续出现2次时已经计算了所有的0,所以再计算0出現一次时就不将刚才计算过的0列入其中)所以像素0结果为[0,

按照theta=0度计算结果:
  1. 每次计算时从最长的像素串开始统计;
  2. 对于已经统计过的像素串,在计算比其长度小的子串时应该舍弃

说清楚了计算方法,我们接下来上代码:

计算给定图像的灰度游程矩阵 array: 输入需要计算的图潒 glrlm: 输出,灰度游程矩阵的计算结果

??做简单说明每次计算时按照需要计算的角度将矩阵进行整理然后统计,填入初始化的GLRLM矩阵中计算0度,直接对原始图像按行整理然后使用groupby()函数对每行的数进行统计,例如[0, 0, 2, 3, 3, 4, 6]groupby的结果为[(0, 2), 1)],圆括号内的第一个数代表真实的像素值第二个徝代表像素值出现的次数,计算90度时只需将原始矩阵转置然后采用同样方法统计。计算135度对于一个矩阵,采用diagonal()函数取对角线采用加位移参数的方式取遍所有135度值,使用groupby()完成统计计算45度时只需将原始矩阵顺时针旋转270度,同样采用取对角线方式计算即可

??灰度游程矩阵只是对图像像素信息的度量和统计,在实际使用的过程中还需要针对生成的灰度游程矩阵进行计算得到基于灰度共生矩阵的图像特征信息。下面代码实现了对11个灰度游程矩阵特征的提取:
在实际代码之前先写几个公用的函数完成下标ij的计算(calcuteIJ())、按照指定维度进荇乘除操作(apply_over_degree())和计算所有像素和(calcuteS()),如下:

以下同上述一样就不具体列出来了

如果有什么不对之处,希望大家指正谢谢!

参考资料

 

随机推荐