第3节:基于图像纹理的特征&相关算子
基于图像纹理特征不是针对像素点进行计算,而是在包含多个像素点的区域进行统计和分析,反映的是物体表面的一些特性,它可以用来反映物体表面灰度像素的排列状况。
图像的纹理特征一般包括图像的能量、相关性、局部均匀性、对比度等。该特征也与区域的形状有关,也是一种区域特征,具有旋转不变形,但是容易受到光照变化的影响。
1、灰度共生矩阵原理(初级入门)
简称:GLCM
①点对:由任意两个像素点组成的(f1,f2),例如图1中(0,1)、(0,2)、(2,0)都可以构成点对。
![](https://i-blog.csdnimg.cn/blog_migrate/46968957b3bd006fa76e538e99dbf7c9.png)
②最大灰度级:就是图片的最大灰度值。图1中的最大灰度值为2。
③灰度共生矩阵:举例图1中灰度值有0、1、2这三种,那么由它产生的点对组合就有3×3种组合,分别是(0,0)、(0,1)、(0,2)、(1,0)、(1,1)、(1,2)、(2,0)、(2,1)、(2,2)这9种点对组合。然后用矩阵来形容如下图2:
![](https://i-blog.csdnimg.cn/blog_migrate/0c192b1a9298ea47c014e5fa655d260a.png)
然后分别在每个方框中,填入对应的组合在图1中出现过的次数,如下图3。
![](https://i-blog.csdnimg.cn/blog_migrate/f884b6b6e62ce74cdaa88ae3cb2efbbd.png)
备注: 此图3涉及的的方向为θ=0°(双向),间距d=1(d≠0,且为整数)。
④方向:双向,即在某一个方向下,正反向和反方向都要计算一遍,且必须要符合点对的前后顺序。
以图1和图3为例,其中(0,1)组合有2次出现在这:
![](https://i-blog.csdnimg.cn/blog_migrate/dedbfb4a167a6e1e47decbeac56f8c35.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a6ac437c5f5f71678f835937f38b952c.png)
⑤间距d:图像像素中间间隔。
⑥灰度降级:灰度图的范围0~255,这样的共生矩阵计算量非常的大,所以必须灰度降级来减少计算量。
然而,灰度共生矩阵表达的是一种概率,因此还需要将统计数目归一化城概率,这样得到的才是灰度共生矩阵。该矩阵有如下特性:
⑴能量:表示灰度共生矩阵中的元素的平方和。能量值大,表示灰度变化比较稳定,反映了纹理变化的均匀程度。
⑵相关性:表示纹理在行或者列方向的相似程度。相关性越大,相似性越高。
⑶局部均匀性:反映图像局部纹理的变化量。这个值越大,表示图像局部的变化越小。
⑷反差:表示矩阵的值差异程度,也间接表现了图像的局部灰度变化幅度。反差值越大,图像中的纹理深浅越明显,表示图像越清晰;反之,则表示图像越模糊。
2、Halcon中创建灰度共生矩阵的算子
Image图像 / Features特征 创建图像中的共生矩阵 gen_cooc_matrix(Regions, Image : Matrix : LdGray, Direction : ) Regions:输入参数,输入被计算的区域。 Image:输入参数,输入的单通道灰度图像。 Matrix:输出参数,输出的灰度共生矩阵,为real类型。 LdGray:输入参数,(灰度降级)表示图中灰度值的级数,即有多少种灰度颜色。默认为6,也可以取1~256的整数。 Direction:输入参数,表示相邻像素的方向。默认为0,范围【0, 45, 90, 135】。 |
3、用共生矩阵计算灰度值特征
Image图像 / Features特征 根据灰度共生矩阵来计算能量、相关性、局部均匀性和对比度。 cooc_feature_matrix(CoocMatrix : : : Energy, Correlation, Homogeneity, Contrast) CoocMatrix:输入参数,输入要计算的灰度共生矩阵。 Energy:输出参数,输出灰度的能量值,即纹理变化的均匀值。这个值越大,灰度变化越稳定。【灰度共生矩阵元素值的平方和】 Correlation:输出参数,输出灰度值的相关性。灰度相关性高,表示纹理在行或者列方向都飞车相似。 【它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。】 Homogeneity:输出参数,输出局部相同的灰度值(局部均匀性)。 Contrast:输出参数,输出灰度值的对比度,或者说是灰度值的反差。这个值越大,反差越明显,表示边界越明显。 【反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。】 |
4、计算共生矩阵并导出其灰度值特征
Image图像 / Features特征 生成矩阵并输出矩阵(gen_cooc_matrix与cooc_feature_matrix的合体) cooc_feature_image(Regions, Image : : LdGray, Direction : Energy, Correlation, Homogeneity, Contrast) Regions:输入参数,表示要检查的区域。 Image:输入参数,输入灰度值图像。 LdGray:输入参数,灰度降级)表示图中灰度值的级数,即有多少种灰度颜色。默认为6。范围1-8。 Direction:输入参数,表示相邻灰度点对的计算方向。默认0,范围【0,45,90,135,mean表示各个方向的均值】。 Energy:输出参数,输出灰度值能量,即纹理变化的均匀性。这个值越大,灰度变化越稳定,纹理的均匀性比较高。【灰度共生矩阵元素值的平方和】 Correlation:输出参数,输出灰度值的相关性。灰度相关性高,表示纹理在行或者列方向都飞车相似。 【它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。】 Homogeneity:输出参数,输出局部相同的灰度值(局部均匀性)。 Contrast:输出参数,输出灰度值的对比度,或者说是灰度值的反差。这个值越大,反差越明显,表示边界越明显。 【反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。】 |
参考文献:
杨青—《Halcon机器视觉算法原理与编程实战》