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

来源:互联网 发布:最近网络流行歌曲2017 编辑:程序博客网 时间:2024/04/29 20:10

灰度共生矩阵
灰度共生矩阵定义为像素对的联合分布概率,是一个对称矩阵,它不仅反映图像灰度在相邻的方向、相邻间隔、变化幅度的综合信息,但也反映了相同的灰度级像素之间的位置分布特征,是计算纹理特征的基础。
设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)

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)

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

0 0
原创粉丝点击