Halcon的使用逻辑是:首先用 HDevelop 完成算法设计和验证,然后导出为 C/C++、VB、C# 完成算法实现
HDevelop端算法设计
Halcon的HDevelop提供所见即所得的算法验证平台,极大提高算法研发的效率
类似Matlab,HDevelop提供了一套编程语法
HDevelop主要包含两种变量:图像变量和控制变量;其中图像变量包含图像、轮廓、区域等类型,控制变量为数值类型(tuple)
图1. HDevelop主界面
如图1所示,主要分5个子窗口(乱了的时候菜单栏 -> 窗口 -> 排列窗口)
图中1为图像窗口,显示3中的图像变量(右键图像变量 -> 清除/显示 显示相应变量,否则为叠加效果)
注:图像变量包含几种类型(halcon称为语义):图像、区域、轮廓等等。
不同算子接受的类型不同,有时候需要做转换
**区域生成轮廓
gen_contour_region_xld (SelectedRegions, contour, 'border')
**轮廓生成区域
gen_region_contour_xld (contour, reg_contour, 'filled')
图中区域2为算子窗口,输入算子会自动展开输入输出变量,点击“插入/替换”就可以在区域5的光标位置插入算子。其最大的意义是提供了函数接口的快速查询(F1帮助文档的精简版)
区域4为控制变量窗口,包含各种数值类型
区域5为程序窗口,使用Halcon的算子配合简单的控制逻辑实现算法验证:
**窗口初始化
**dev_开头的为设备类操作,其他为算子操作
dev_close_window()
read_image(src_img, 'C:/Users/yayo/Desktop/1.jpg')
get_image_size(src_img, width, height)
dev_open_window(0, 0, width, height, 'black', WindowID)
set_display_font (WindowID, 20, 'mono', 'true', 'false'