特征提取-区域中心

read_image (Image, 'fabrik')
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowID)
set_display_font (WindowID, 14,'mono', 'true', 'false')
dev_set_colored (6)
*设置显示颜色的种类个数* regiongrowing (Image, Regions,
1, 1, 3, 200)
*将图像分区域,区域最小尺寸为200,通过比较灰度值,公差在3以内,“1,1”参数表示横向和纵向检测的像素个数。请注意和面实验对比效果* dev_set_draw (
'margin') dev_display (Regions) area_center (Regions, Area, Row, Column) get_string_extents (WindowID, 12345, Ascent, Descent, TxtWidth, TxtHeight)
*计算字符串“12345”的宽度,预留出区域面积字符串的显示位置*
for I := 0 to |Area| - 1 by 1 disp_message (WindowID, Area[I], 'image', Row[I] - TxtHeight / 2, Column[I] - TxtWidth / 2, 'white', 'false') endfor

原图

regiongrowing (Image, Regions, 1, 1, 3, 200)

regiongrowing (Image, Regions, 1, 3, 3, 200)

regiongrowing (Image, Regions, 3, 1, 3, 200)

注意原图中电脑栅格哪里因为相邻区域图形面积达不到200而被显示为黑色,所以黑色是不配选择区域。而不是一种区域显示颜色

该示例注意 regiongrowing 和 area_center 算子的功能

请注意,HALCON中的变量不用预先定义,所以如果计算出来的区域为多个区域,则area_center(regions,area,row,column)中计算出来的结果如果为多个值得话,则相应的变量就都是数组。

原文地址:https://www.cnblogs.com/-liszt/p/5295715.html