特征提取区域中心

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