最近的项目需要,halcon很多功能简单好用,比opencv更适合某些工业检测项目。halcon比oepncv易上手,在此记录halcon学习历程。第一个程序是找到图片中的白色标签,思路是通过阈值分割得到连通域,把每个连通域分割开,通过形状特征选择获得符合要求的连通域,最后用十字标把目标(矩形)中心绘制出来。
原图
代码,有详细注释
* Image Acquisition 01: Code generated by Image Acquisition 01
read_image (Image, 'C:/Users/Public/Documents/MVTec/HALCON-19.11-Progress/examples/images/fabrik.png')
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 8092.59, 9055.56)
*get image size
get_image_size (Image, Width, Height)
*close window
dev_close_window ()
*open window
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
*show image
dev_display (Image)
*threshold seg,得到不同连通域
threshold (Image, Region, 128, 255)
select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 8092.59, 9055.56)
*打散连通域,另连通域成为单独的一个
connection (Region, ConnectedRegions)
*获取目标
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 8000, 8500)
*描述矩形中心
area_center (SelectedRegions, Area, Row, Column)
*十字标 param3: 十字标大小 param4:十字标角度
gen_cross_contour_xld (Cross, Row, Column, 60, 0.0)
结果: