Halcon实战:如何用smallest_rectangle2精准测量不规则物体的倾斜角度(附代码示例)
在工业视觉检测的日常工作中,我们常常会遇到一些看似简单、实则暗藏玄机的测量任务。比如,一块看似普通的PCB板,上面的某个电容或芯片,在贴装过程中发生了微小的旋转偏移,肉眼难以察觉,但足以影响整条生产线的良品率。又或者,一个形状不规则的金属冲压件,需要精确测量其摆放角度,以确保后续的装配精度。这些场景的核心,往往都指向一个关键参数:物体的倾斜角度。
传统的测量方法,比如使用卡尺或投影仪,不仅效率低下,而且难以应对高速、大批量的生产需求。而基于机器视觉的自动化检测方案,则能完美解决这些痛点。在众多视觉软件库中,Halcon以其强大的图像处理能力和丰富的算子库,成为了工业视觉领域的“瑞士军刀”。今天,我们就来深入探讨Halcon中一个看似基础、实则功能强大的算子——smallest_rectangle2,看看它如何成为我们解决不规则物体角度测量难题的利器。
与简单的orientation_region不同,smallest_rectangle2为我们提供了一个最小外接矩形的视角。这个矩形不仅能告诉我们物体的倾斜角度(Phi),还能同时给出其中心位置(Row, Column)和尺寸信息(Length1, Length2)。这种“一举多得”的特性,使得它在定位、测量和缺陷判断等复合任务中,展现出极高的实用价值。接下来,我们将从原理到实践,一步步拆解如何利用这个算子,构建一个鲁棒、精准的角度测量流程。
1. 理解核心:smallest_rectangle2与角度测量的几何原理
在深入代码之前,我们必须先搞清楚smallest_rectangle2到底在计算什么。这个算子寻找的是能够完全包围目标区域(Region)的、面积最小的那个任意方向矩形。这个矩形的方向,即长轴方向,就被定义为区域的主方向,也就是我们需要的倾斜角度Phi。
这里有一个关键点需要特别注意:Phi的定义范围是 -π/2 到 π/2(即 -90° 到 90°)。这个范围意味着,算子返回的角度始终代表矩形长轴与图像坐标系水平轴(X轴)之间的夹角,并且通过限定范围,确保了角度的唯一性。具体来说:
- 正角度:表示长轴相对于X轴逆时针旋转。
- 负角度:表示长轴相对于X轴顺时针旋转。
提示:很多初学者会混淆
Length1和Length2哪个是长边。根据Halcon官方文档的定义,Length1是矩形宽度的一半(半宽),Length2是矩形长度的一半(半长)。因此,Length2对应的才是矩形的长边方向,也就是角度Phi所描述的方向。在实际使用gen_rectangle2绘制这个矩形时,传入的也是Length1和Length2。
为了更直观地理解smallest_rectangle2与另一个常用角度算子orientation_region的区别,我们可以看下面的对比:
| 特性 | smallest_rectangle2 |
orientation_region |
|---|---|---|
| 计算原理 | 计算区域的最小外接矩形(Rotated Rect) | 计算区 |

&spm=1001.2101.3001.5002&articleId=153145531&d=1&t=3&u=41faf512847d43d9a2619b557115ffed)
6089

被折叠的 条评论
为什么被折叠?



