halcon例程学习笔记(10)---图像灰度共生矩阵cooc_feature_image.hdev

灰度共生矩阵 
灰度共生矩阵定义为像素对的联合分布概率,是一个对称矩阵,它不仅反映图像灰度在相邻的方向、相邻间隔、变化幅度的综合信息,但也反映了相同的灰度级像素之间的位置分布特征,是计算纹理特征的基础。 
设f(x,y)为一幅数字图像,其大小为M×N,灰度级别为Ng,则满足一定空间关系的灰度共生矩阵为:这里写图片描述 
其中#(x)表示集合x中的元素个数,显然P为Ng×Ng的矩阵,若(x1,y1)与(x2,y2)间距离为d,两者与坐标横轴的夹角为θ,则可以得到各种间距及角度的灰度共生矩阵(i,j,d,θ)。其中元素(i,j)的值表示一个灰度为i,另一个灰度为j的两个相距为d的像素对在角的方向上出现的次数。 
在计算得到共生矩阵之后,往往不是直接应用计算的灰度共生矩阵,而是在此基础上计算纹理特征量,我们经常用反差、能量、熵、相关性等特征量来表示纹理特征。 
(1) 反差:又称为对比度,度量矩阵的值是如何分布和图像中局部变化的多少,反应了图像的清晰度和纹理的沟纹深浅。纹理的沟纹越深,反差越大,效果清晰;反之,对比值小,则沟纹浅,效果模糊。 
这里写图片描述 
(2) 能量:是灰度共生矩阵各元素值的平方和,是对图像纹理的灰度变化稳定程度的度量,反应了图像灰度分布均匀程度和纹理粗细度。能量值大表明当前纹理是一种规则变化较为稳定的纹理。 
这里写图片描述 
(3) 熵:是图像包含信息量的随机性度量。当共生矩阵中所有值均相等或者像素值表现出最大的随机性时,熵最大;因此熵值表明了图像灰度分布的复杂程度,熵值越大,图像越复杂。 
这里写图片描述 
(4) 相关性:也称为同质性,用来度量图像的灰度级在行或列方向上的相似程度,因此值的大小反应了局部灰度相关性,值越大,相关性也越大。 
这里写图片描述

在halcon中提供了cooc_feature_image算子来计算灰度共生矩阵,

cooc_feature_image(Regions, Image : : LdGray, Direction : Energy, Correlation, Homogeneity, Contrast)
  • 1

Parameters 
Regions (input_object) region(-array) → object Region to be examined. 
Image (input_object) singlechannelimage → object (byte) Corresponding gray values. 
LdGray (input_control) integer → (integer) 
Number of gray values to be distinguished (). 
Default value: 6 
List of values: 1, 2, 3, 4, 5, 6, 7, 8 
Direction (input_control) integer → (integer / string) 
Direction in which the matrix is to be calculated. 
Default value: 0 
List of values: 0, 45, 90, 135, ‘mean’ 
Energy (output_control) real(-array) → (real) 
Gray value energy. 
Correlation (output_control) real(-array) → (real) 
Correlation of gray values. 
Homogeneity (output_control) real(-array) → (real) 
Local homogeneity of gray values. 
Contrast (output_control) real(-array) → (real) 
Gray value contrast. 
2、 cooc_feature_image ( Regions, Image : : LdGray, Direction : Energy, Correlation, Homogeneity, Contrast ) 计算共生矩阵和推导出灰度特征值 Direction:灰度共生矩阵计算的方向 Energy:灰度值能量 Correlation:灰度值的相关性 Homogeneity:灰度值的均匀性 Contrast:灰度值的对比度

例程: 
* Calculate a co-occurrence matrix and derive gray value features thereof 计算共生矩阵和推导出灰度特征值 

read_image (Image, ‘mreut’) 
get_image_size (Image, Width, Height) 
dev_close_window () 
dev_open_window (0, 0, Width, Height, ‘black’, WindowID) 
dev_display (Image) 
dev_set_draw (‘margin’) 
* Create a rectangle parallel to the coordinate axes 
gen_rectangle1 (Rectangle1, 350, 100, 450, 200) 
gen_rectangle1 (Rectangle2, 100, 200, 200, 300) 
cooc_feature_image (Rectangle1, Image, 6, 0, Energy1, Correlation1, Homogenity1, Contrast1) 
cooc_feature_image (Rectangle2, Image, 6, 0, Energy2, Correlation2, Homogenity2, Contrast2)

通过对两个区域的共生矩阵进行对比分析发现,纹理信息在表征物体是否存在上面还是存在很大的差别。因此在做图像识别时可以将纹理信息纳入到特征量中 形成特征样本库,最后在进行机器学习获得最终正确的分类

猜你喜欢

转载自blog.csdn.net/u010312937/article/details/78710679
今日推荐