进行了HALCON的阈值分割与坐标提取的学习,代码如下:
read_image (Image, 'rim.png')//读取图像
dev_close_window ( )//关闭窗口
get_image_size (Image, Width, Height)//获取图像的大小
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)//打开一个新窗口
dev_display (Image)//显示图像
threshold (Image, Regions, 25, 121)//对图像进行二值化处理
connection (Regions, ConnectedRegions)//将区域进行分开
select_shape (ConnectedRegions, SelectedRegions, 'area', \
'and', 1600, 6000)//选择孔面积大小的区域
dev_clear_window ( )//清除窗口
dev_set_draw ('margin')//显示区域的填充方式(不填充)
dev_set_line_width (3)//设置区域显示框的线宽
dev_display (Image)//显示图像
dev_display (SelectedRegions)//显示孔
area_center (SelectedRegions, Area, Rows, Columns)//获取孔的面积,中心坐标
index := |Rows|//提取孔的数量
* 依次对指定孔进行坐标显示
for i:=0 to index-1 by 1
messagex := '第'+(i+1)+'孔的坐标为:'+Rows[i]
messagey := '第'+(i+1)+'孔的坐标为:'+