Halcon算子:smallest_rectangle1()和smallest_rectangle2()

本文介绍Halcon中的两个算子smallest_rectangle1和smallest_rectangle2的功能及用法。smallest_rectangle1用于计算平行坐标最小外包矩形;smallest_rectangle2则用于计算最小外包矩形,并返回矩形的中心点坐标、旋转角度及长边和短边长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Halcon算子:smallest_rectangle1()smallest_rectangle2()

 

smallest_rectangle1(Regions : : : Row1, Column1, Row2, Column2)

功能:返回平行坐标最小外包矩形

该算子计算返回输入区域的平行于坐标系的最小外包矩形。该最下外包是关于区域中心计算的最小平行外包。

返回参数:Row1, Column1:矩形中心点的坐标。

 Row2, Column2:矩形右下较的点坐标。

 

 

smallest_rectangle2 (Regions , Row, Column, Phi, Length1, Length2)

功能:返回最小外包矩形

该算子返回输入区域的最小外包矩形,该矩形是关于区域中心计算的最小外包面积矩形。

返回参数:

Row, Column      :矩形中心点坐标

Phi                      :旋转角度(弧度值)   - pi / 2 < Phi && Phi <= pi / 2

Length1,Length2:长边和短边,均为1/2边长。(Length1>短边Length2) Length2 >= 0.0 && Length2 <= Length1

 

在Helicon AI (一种计算机视觉库) 中,`smallest_rectangle2` 算子通常用于找到图像区域内的最小边界框,即最小外接矩形。如果返回的矩形是斜的,说明原始目标不是正方形或者长宽比偏离了正常水平方向。为了将斜的外接矩形变回接近水平的方向,可以采取以下几个步骤: 1. **旋转坐标系**:首先,你需要确定矩形的中心点角度。使用类似 `get_rotation_matrix` 的函数,根据角度旋转坐标轴,使得新的X轴尽量平行于原始矩形较长的那一边。 ```python import cv2 import numpy as np angle = calculate_angle(rect) rotation_matrix = get_rotation_matrix(angle) # Apply the rotation to your image or points if necessary rotated_points = apply_rotation(points, rotation_matrix) ``` 这里的 `calculate_angle`, `get_rotation_matrix`, `apply_rotation` 需要你自己实现或者参考相关库提供的功能。 2. **计算新的尺寸**:应用旋转后,你可以计算新矩形的新宽度高度,取两者中的较大值作为新的宽度,较小值作为高度,确保变为更接近水平的样子。 3. **调整矩形大小**:基于新的宽度高度创建一个新的矩形,其位置保持不变,即保持原来矩形的左上角坐标。 4. **重新调整坐标**:如果需要,还需要对点集或像素数据进行相应的旋转,以便适应新的矩形。 5. **使用smallest_rectangle2或其他算子**:现在你应该有一个更接近水平的矩形,可以用`smallest_rectangle2` 或者其他边界框算子,如`minAreaRect` 或 `fitEllipse` 来确认新的边界框。 ```python new_rect = smallest_rectangle2(rotated_points) ``` 记得在每个步骤后检查结果的合理性,并根据实际需求进行调整。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值