Halcon实例:提取图像的纹理特征
发布时间
阅读量:
阅读量
Halcon实例:提取图像的纹理特征
举例说明:假设输入为一张灰度图像,在该图像中选取两个不同区域的灰度信息进行分析研究。具体操作步骤如下:首先选择具有显著灰度变化特征的第一个区域(记为矩形1),然后选择第二个具有相对平滑灰度分布的区域(记为矩形2)。通过计算两者的联合概率分布矩阵(即共生矩阵),对比分析两者的统计参数特征。

该区域(a)显示了输入图像;红色与黄色的矩形分别标识了两组灰度差异明显的区域;图(b)展示了红色矩形区域对应的特征参数;而图(c)则展示了黄色矩形区域对应的特征参数。具体数值见下表。

通过图和表可以看出,在左侧红色矩形区域中可以看到明显的灰度变化;该区域的能量值相对较小(数值较低),这表明该区域所呈现的纹理特性较为均匀但存在一定的细节差异;同时观察到左侧区域具有较高的对比度(数值较高),这意味着其边缘较为分明且灰度分布具有较大的动态范围。相比之下右侧黄色矩形区域内图像呈现出较为平滑的纹理特征(相关性较高),这表明在行向和列向两个方向上的纹理特征均较为相似;然而右侧区域的整体对比度较低(动态范围较小),反映出其中局部区域的灰度分布较为一致
dev_close_window ()
*读取输入的图片
read_image (Image, 'data/board')
*将输入的彩色图像转为黑白图像
rgb1_to_gray (Image, GrayImage)
get_image_size (GrayImage, Width, Height)
*创建一个与输入图像同样大小的窗口
dev_open_window (0, 0, Width/4, Height/4, 'black', WindowID)
*设定画笔宽度
dev_set_line_width (5)
*创建两个窗口用于显示参数计算的结果
dev_open_window (0, 512, 320, 320, 'black', WindowID1)
dev_open_window (512, 512, 320, 320, 'black', WindowID2)
*分别设置两个矩阵,选择不同的两部分区域
gen_rectangle1 (Rectangle1, 200,10, 380, 190)
gen_rectangle1 (Rectangle2, 580, 650, 730, 800)
*分别对两个矩形求取灰度共生矩阵Matrix1和Matrix2
gen_cooc_matrix (Rectangle1, GrayImage, Matrix1, 6, 0)
gen_cooc_matrix (Rectangle2, GrayImage, Matrix2, 6, 0)
*分别对Matrix1和Matrix2提取灰度特征参数
cooc_feature_matrix (Matrix1, Energy1, Correlation1, Homogeneity1, Contrast1)
cooc_feature_matrix (Matrix2, Energy2, Correlation2, Homogeneity2, Contrast2)
*采取另一种方式,直接对矩阵2的图像求灰度特征参数,结果与上面两步计算出的参数是一致的
cooc_feature_image (Rectangle2, GrayImage, 6, 0, Energy3, Correlation3, Homogeneity3, Contrast3)
*显示图像窗口和两个矩形的灰度共生矩阵
dev_set_window (WindowID)
dev_set_draw ('margin')
dev_display (GrayImage)
dev_display (Rectangle1)
dev_set_color('yellow')
dev_display (Rectangle2)
dev_set_window (WindowID1)
dev_display (Matrix1)
*以字符串的形式,分别在两个矩阵的对应窗口上显示灰度特征值的计算结果
String := ['Energy: ','Correlation: ','Homogeneity: ','Contrast: ']
dev_set_color('red')
disp_message (WindowID1, String$'-14s' + [Energy1,Correlation1,Homogeneity1,Contrast1]$'6.3f', 'window', 12, 12, 'white', 'false')
dev_set_window (WindowID2)
dev_display (Matrix2)
dev_set_color('yellow')
String := ['Energy: ','Correlation: ','Homogeneity: ','Contrast: ']
disp_message (WindowID2, String$'-14s' + [Energy2,Correlation2,Homogeneity2,Contrast2]$'6.3f', 'window', 12, 12, 'white', 'false')
bash

上述代码调用gen_cooc_matrix算子和coocfeature_matrix算子来求取指定区域的灰度共生矩阵,并分别在对应的窗口中展示其灰度特征值。通过分析图像的空间纹理特性, 从而实现图像模式识别的过程。
全部评论 (0)
还没有任何评论哟~
