Halcon8:获取仿射外接矩形(rectangle2)四个顶点坐标

Halcon8:获取仿射外接矩形(rectangle2)四个顶点坐标

(1)实现功能:

         halcon中调用smallest_rectangle2()函数获得仿射外接矩形(旋转外接矩形),返回的是矩形的中心坐标、角度和长短轴长度,但是在有些时候需要使用的是仿射外接矩形的四个顶点坐标。

         本文实现的功能是通过矩形的中心坐标、角度和长短轴长度获得四个顶点的坐标。

 

(2)实现代码:

    smallest_rectangle2 (ObjectSelected, Row16, Column16, Phi3, Length1, Length2)
    
    *提取仿射最小外接矩形的四个顶点坐标
    gen_rectangle2_contour_xld (Rectangle4, Row16, Column16, Phi3, Length1, Length2)
    tuple_cos (Phi3, Cos)
    tuple_sin (Phi3, Sin)
    dev_set_color('red')
    a:= -Length1*Cos - Length2*Sin
    b := -Length1*Sin + Length2*Cos
    gen_cross_contour_xld(Cross, Row16-b,  Column16+a, 6, Phi3)
    c := Length1*Cos - Length2*Sin
    d := Length1*Sin + Length2*Cos
    gen_cross_contour_xld(Cross, Row16-d, Column16+c, 6, Phi3)
    e:= Length1*Cos + Length2*Sin
    f := Length1*Sin - Length2*Cos
    gen_cross_contour_xld(Cross, Row16-f, Column16+e, 6, Phi3)
    g := -Length1*Cos + Length2*Sin
    h := -Length1*Sin - Length2*Cos
    gen_cross_contour_xld(Cross, Row16-h, Column16+g, 6, Phi3)

 

 

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要计算拟合出最小外接矩形2的四个顶点坐标,并进行仿射变换,可以按照以下步骤进行: 1. 首先,使用Halcon的`gen_rectangle2`函数计算出最小外接矩形的相关参数,包括中心点坐标、宽度、高度和旋转角度。假设这些参数分别为`Row`(中心点的行坐标)、`Column`(中心点的列坐标)、`Length1`(宽度)、`Length2`(高度)和`Phi`(旋转角度)。 2. 然后,根据最小外接矩形的参数,可以计算出四个顶点相对于中心点的相对坐标。根据矩形的宽度和高度以及旋转角度,可以得到四个顶点的相对坐标分别为: - 左上角:(-Length1/2, -Length2/2) - 右上角:(Length1/2, -Length2/2) - 右下角:(Length1/2, Length2/2) - 左下角:(-Length1/2, Length2/2) 3. 接下来,可以将相对坐标转换为绝对坐标,即将相对坐标加上中心点的坐标四个顶点的绝对坐标分别为: - 左上角:(Row - Length2/2*cos(Phi) - Length1/2*sin(Phi), Column + Length2/2*sin(Phi) - Length1/2*cos(Phi)) - 右上角:(Row - Length2/2*cos(Phi) + Length1/2*sin(Phi), Column + Length2/2*sin(Phi) + Length1/2*cos(Phi)) - 右下角:(Row + Length2/2*cos(Phi) + Length1/2*sin(Phi), Column - Length2/2*sin(Phi) + Length1/2*cos(Phi)) - 左下角:(Row + Length2/2*cos(Phi) - Length1/2*sin(Phi), Column - Length2/2*sin(Phi) - Length1/2*cos(Phi)) 4. 最后,如果需要进行仿射变换,可以使用Halcon的`affine_trans_region`函数将最小外接矩形区域进行仿射变换。根据仿射变换的需求,可以设置变换矩阵,然后将最小外接矩形区域与变换矩阵一起传递给`affine_trans_region`函数。 以上是使用Halcon计算拟合出最小外接矩形2的四个顶点坐标并进行仿射变换的一般步骤,具体实现时需要根据实际情况进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值