Bootstrap

Halcon联合c#识别矩形编程超详细思路讲解,包含界面自选参数、识别方向、优先级等、界面采用表格输出结果数据。可以直接实战

持续更新,老样子废话不多说。

识别矩形是halcon中一个常用的算子,可以根据感兴趣区域(ROI)来识别区域内的矩形,并数据矩形的中心XY、弧度、宽度和高度。

运行效果如下:cf83fa4f52da416680a0fccf89434d33.png

 如上图中可以自定义设置识别参数,识别方向和优先级等,这些参数还是很重要的,比如由黑到白识别,又或者是由内到外,这些参数决定了识别的结果

识别结果如下(角度是通过弧度转换过来的):

a9895f0ea2b44308ba43d9e7358b4a69.png

 

具体思路如下:

1、首先需要有对应的窗体来支撑,如上图所示,其中识别矩形的参数我这里都是通过winform提供的属性表控件来操作的,显示结果控件也是winform自带的数据表格控件,定义好窗体后进行下一步。

2、感兴趣区域,也就是ROI,我这里用的是带旋转的矩形ROI,并且封装成了函数,源码如下图:

d4fa063fc8f34dd8affa2a03a30359c4.png

 矩形2ROI需要提供五个参数来确认矩形大小,左上角xy、弧度、右下角xy

如上图

第一个函数是用来画矩形2ROI并且显示在halcon控件上的

第二个函数则是可以返回该ROI对象

第三个函数可以返回该ROI对象所在控件中的具体位置(这点很重要,因为ROI是可以移动的,感兴趣区域也会移动,所以需要拿到ROI具体的位置然后作为参数传递给识别矩形的算子)

ROI完成后,接下来就可以开始识别了

3、创建测量模型,开始测量并提供参数,最后设置一些识别参数,然后开始识别,最后结果应用到图像显示,具体细节如下图,每行代码都有详细的注释

425ae250650f42a988e484735c74c892.png

 识别优先级参数:

1075aeda305f40a0b3e3cd50b09c5e9b.png

 可以选择是否显示检测细节

这是显示细节的图像

58ea19687b91429cba8ae50074746a2e.png

 如果不勾选显示检测细节,那么最后显示的结果不会出现图中绿色的范围,只会显示找到的矩形轮廓

 

;