持续更新,老样子废话不多说。
识别矩形是halcon中一个常用的算子,可以根据感兴趣区域(ROI)来识别区域内的矩形,并数据矩形的中心XY、弧度、宽度和高度。
运行效果如下:
如上图中可以自定义设置识别参数,识别方向和优先级等,这些参数还是很重要的,比如由黑到白识别,又或者是由内到外,这些参数决定了识别的结果
识别结果如下(角度是通过弧度转换过来的):
具体思路如下:
1、首先需要有对应的窗体来支撑,如上图所示,其中识别矩形的参数我这里都是通过winform提供的属性表控件来操作的,显示结果控件也是winform自带的数据表格控件,定义好窗体后进行下一步。
2、感兴趣区域,也就是ROI,我这里用的是带旋转的矩形ROI,并且封装成了函数,源码如下图:
矩形2ROI需要提供五个参数来确认矩形大小,左上角xy、弧度、右下角xy
如上图
第一个函数是用来画矩形2ROI并且显示在halcon控件上的
第二个函数则是可以返回该ROI对象
第三个函数可以返回该ROI对象所在控件中的具体位置(这点很重要,因为ROI是可以移动的,感兴趣区域也会移动,所以需要拿到ROI具体的位置然后作为参数传递给识别矩形的算子)
ROI完成后,接下来就可以开始识别了
3、创建测量模型,开始测量并提供参数,最后设置一些识别参数,然后开始识别,最后结果应用到图像显示,具体细节如下图,每行代码都有详细的注释
识别优先级参数:
可以选择是否显示检测细节
这是显示细节的图像
如果不勾选显示检测细节,那么最后显示的结果不会出现图中绿色的范围,只会显示找到的矩形轮廓