<Halcon> 计算任意矩形四个顶点坐标

这篇具有很好参考价值的文章主要介绍了<Halcon> 计算任意矩形四个顶点坐标。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

计算任意矩形四个顶点坐标

1、计算矩形与水平方向的夹角Phi(smallest_rectangle2:矩形长与水平的夹角,- pi / 2 < Phi <= pi / 2);
2、若夹角大于45°或者小于-45°,角度转换为矩形宽与水平的夹角,长宽互换;
halcon四个顶点获取矩形,Halcon,Halcon,几何学
halcon四个顶点获取矩形,Halcon,Halcon,几何学

Halcon通用代码

*计算矩形的中间点、角度、及长宽(一半)
smallest_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)

if(abs(deg(Phi))>45)
    Phi:=rad(deg(Phi)-90*(Phi/abs(Phi)))
    Tmp:=Length1
    Length1:=Length2
    Length2:=Tmp
endif

tuple_sin (Phi, Sin)
tuple_cos (Phi, Cos)

*左上角
TopLeft_X := -Length1*Cos - Length2*Sin
TopLeft_Y := -Length1*Sin + Length2*Cos
TopLeft_Row := Row - TopLeft_Y 
TopLeft_Col := Column + TopLeft_X 

*右上角
TopRight_X := Length1*Cos - Length2*Sin
TopRight_Y := Length1*Sin + Length2*Cos
TopRight_Row := Row - TopRight_Y 
TopRight_Col := Column + TopRight_X 

*右下角
LowerRight_X := Length1*Cos + Length2*Sin
LowerRight_Y := Length1*Sin - Length2*Cos
LowerRight_Row := Row - LowerRight_Y 
LowerRight_Col := Column + LowerRight_X 
 
*左下角
LowerLeft_X := -Length1*Cos + Length2*Sin
LowerLeft_Y := -Length1*Sin - Length2*Cos
LowerLeft_Row := Row - LowerLeft_Y 
LowerLeft_Col := Column + LowerLeft_X 

示例

示例图
绿色圈:左上角
蓝色圈:右上角
黄色圈:右下角
白色圈:左下角

halcon四个顶点获取矩形,Halcon,Halcon,几何学
示例代码文章来源地址https://www.toymoban.com/news/detail-687576.html

dev_set_color('red')
gen_rectangle2 (ROI_0, 250, 250, rad(20), 100, 20)
* gen_rectangle2 (ROI_1, 250, 250, rad(70), 100, 20)
* gen_rectangle2 (ROI_2, 250, 250, rad(-20), 100, 20)
* gen_rectangle2 (ROI_3, 250, 250, rad(-70), 100, 20)

smallest_rectangle2 (ROI_0, Row, Column, Phi, Length1, Length2)
* smallest_rectangle2 (ROI_1, Row, Column, Phi, Length1, Length2)
* smallest_rectangle2 (ROI_2, Row, Column, Phi, Length1, Length2)
* smallest_rectangle2 (ROI_3, Row, Column, Phi, Length1, Length2)

if(abs(deg(Phi))>45)
    Phi:=rad(deg(Phi)-90*(Phi/abs(Phi)))
    Tmp:=Length1
    Length1:=Length2
    Length2:=Tmp
endif

tuple_sin (Phi, Sin)
tuple_cos (Phi, Cos)

*左上角
dev_set_color('green')
TopLeft_X := -Length1*Cos - Length2*Sin
TopLeft_Y := -Length1*Sin + Length2*Cos
TopLeft_Row := Row - TopLeft_Y 
TopLeft_Col := Column+TopLeft_X 
gen_circle (Circle, TopLeft_Row, TopLeft_Col, 10)

*右上角
dev_set_color('blue')
TopRight_X := Length1*Cos - Length2*Sin
TopRight_Y := Length1*Sin + Length2*Cos
TopRight_Row:=Row-TopRight_Y 
TopRight_Col:=Column+TopRight_X 
gen_circle (Circle, TopRight_Row, TopRight_Col, 10)

*右下角
dev_set_color('yellow')
LowerRight_X := Length1*Cos + Length2*Sin
LowerRight_Y := Length1*Sin - Length2*Cos
LowerRight_Row:=Row-LowerRight_Y 
LowerRight_Col:=Column+LowerRight_X 
gen_circle (Circle, LowerRight_Row, LowerRight_Col, 10)
 
*左下角
dev_set_color('white')
LowerLeft_X := -Length1*Cos + Length2*Sin
LowerLeft_Y := -Length1*Sin - Length2*Cos
LowerLeft_Row:=Row-LowerLeft_Y 
LowerLeft_Col:=Column+LowerLeft_X 
gen_circle (Circle, LowerLeft_Row, LowerLeft_Col, 10)

到了这里,关于<Halcon> 计算任意矩形四个顶点坐标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 知三维空间中任意旋转抛物面的顶点和焦点坐标,建立该旋转抛物面方程

            建立三维空间旋转抛物线方程的前提,首先需要确定三维空间直角坐标系的 位置,然后确定焦点和抛物面顶点的坐标,再利用焦点和抛物面顶点的坐标求出准面方程(我们这里把准面定义为是准线绕着焦点与抛物面顶点形成的直线旋转180°所形成的平面,且该平面垂

    2024年02月09日
    浏览(49)
  • Android 对View 进行旋转、缩放、平移的属性变换后,获取外矩形顶点

    来张图 Android View 通过平移、旋转、缩放后,顶点映射 之前写的这个文章,里面用到的是 matrix.mapPoints() 通过 矩形的4个点来映射出新的4个点。 个人以为这就会得到正确的结果。 最近呢,就想着,验证一下这个是不是正确的 验证想法: “基于 变换后的 ltrb,加一个自定义

    2023年04月23日
    浏览(47)
  • Unity获取物体网格(mesh)顶点(vertex)的世界坐标

    ​​​​ 1、获取物体的所有顶点 注意使用:sharedMesh,而不是mesh 2、顶点的坐标转变成世界坐标 注意: 必须用myGameObject.transform.TransformPoint(v1) 而不是transform.TransformPoint(v1),这一句起始等价于:this.gameobject.transform.TransformPoint(v1) 3、剩下的比较简单了,就在是坐标处安放物体

    2024年02月11日
    浏览(56)
  • Halcon 简单入门3D点云计算高度

    入门级别的学习,就是简单的计算一个高度差,其原理如下: 1、先选出上面一个面的点,然后计算出在一个坐标系想的均值高度 2、筛选出下面一个面的点,然后计算出这个平面上的点的均值高度 3、高度差 4、显示  

    2024年02月11日
    浏览(48)
  • Halcon3d 点云计算平面度

    2024年02月11日
    浏览(41)
  • php怎么获取图片四个角的坐标 x y

    使用PHP GD库来处理图像,记得查看是否安装 代码: 注意事项: 首先确保已经安装了GD库,如果没有安装,可以参考官方文档进行安装配置。 imagesx() 和 imagesy() 函数分别返回图像的宽度和高度。 $image 变量表示图像对象,可以根据自己的需求选择不同的图像类型(如JPEG、PNG等)

    2024年01月21日
    浏览(48)
  • opencv关于使用cvRotatedRect函数计算并画出矩形四个点的返回位置

    画矩形操作 Point center = Point((left.center.x + right.center.x) / 2, (left.center.y + right.center.y) / 2);                         RotatedRect rect = RotatedRect(center, Size(dis, meanheight), (left.angle +                                    right.angle) / 2);//计算装甲板的四个角点               

    2024年02月13日
    浏览(41)
  • Qt/C++音视频开发60-坐标拾取/按下鼠标获取矩形区域/转换到视频源真实坐标

    通过在通道画面上拾取鼠标按下的坐标,然后鼠标移动,直到松开,根据松开的坐标和按下的坐标,绘制一个矩形区域,作为热点或者需要电子放大的区域,拿到这个坐标区域,用途非常多,可以直接将区域中的画面放大,也可以将该圈起来的区域位置发给设备,由设备设定

    2024年02月03日
    浏览(52)
  • 【技术碎片】【Java】计算椭圆的外接矩形坐标

    遇到一个需要计算一般椭圆(斜椭圆)的外接矩形坐标的问题,在此记录一下 已知椭圆的中心点坐标centerX centerY,椭圆的长轴,短轴majorRadius minorRadius,和旋转角度 angle。 按理说java有原生的计算外接矩形的函数,先看看 java.awt.geom 怎么实现的。 注:java.awt.geom 是 Java 2D 图形

    2024年02月08日
    浏览(55)
  • 【halcon】halcon字符识别——OCR

    OCR(Optical Character Recongnition)光学字符识别。 halcon 的OCR,提供了几种方式,我们应该如何选择? 自动文本阅读器(find_text) 手动文本阅读器(find_text) 自己分割再识别 只需要指定一段字符的区域,然后指定一些参数,他就能自动识别!非常标准化的流程。

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包