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)中计算出来的结果如果为多个值得话,则相应的变量就都是数组。