51Halcon机器视觉

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 7138|回复: 6
收起左侧

[已解决] 根据矩形中心和旋转角度求矩形角点

[复制链接]
  • TA的每日心情
    耍酷
    2019-5-8 08:38
  • 签到天数: 254 天

    连续签到: 1 天

    [LV.8]以坛为家I

    2

    主题

    28

    帖子

    1439

    积分

    Rank: 6Rank: 6

    积分
    1439
    发表于 2017-5-13 15:06:22 | 显示全部楼层 |阅读模式

    黄金VIP |主题 2|帖子 28|积分 1439

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    得益于(鸟叔)咋咋鸟的视觉平台和众网友的无私奉献,学习了不少知识和技巧;也学习下大神们的分享和奉献精神,分享一个实例源代码:根据矩形的中心坐标和矩形的旋转角度求矩形四个角点坐标;
    需要说明的是:我们是处理图像中的信息,即输入信息和输出信息都是以图像坐标系为参考的,而图像坐标系常见的样子是水平(X轴)向右为正,垂直(Y轴)向下为正,其实这是所谓的2D笛卡尔坐标系,属于左手坐标系;但是矩形的旋转角度,却是以另外的坐标系来描述的,即水平(X轴)向右为正,垂直(Y轴)向上为正,这是我们在学习中常用坐标系,也是2D笛卡尔坐标系,属于右手坐标系,我们更习惯于在右手坐标系里求解数学问题,这个实例中涉及到的知识点主要是坐标变换(仿射变换)、其次坐标等;我们以图像坐标系进行输入信息并观察在此坐标系中的效果,因此需要在右手坐标系中求解,然后在图像坐标系观察。背景简介完毕,我来大致描述一下实现过程:我们假定左手坐标系和右手坐标系共用原点,首先根据矩形中心在左手坐标系中的坐标,得到平行坐标轴时的矩形角点坐标,然后将矩形中心以及角点坐标转换为右手坐标系中的坐标;再根据坐标变换,在右手坐标系中求解绕矩形中心旋转Phi角度后的角点坐标;最后将在右手坐标系中的角点坐标转换为左手坐标系中的坐标,即观察效果。
    详细求解过程请自行尝试,若有疑问请私信!
    以下是Halcon 下的代码(本地函数文件形式):(英文描述可以提高逼格哦!)

    *Initialize the variable for coordinate of vertexes of rectangle2
    VertexesY:=[]
    VertexesX:=[]
    *Initialize the temperary variables
    RowTem:=0
    ColTem:=0
    *Judge the rectangle if it is available
    if(Len1<0 or Len2<0)
        return()
    endif
    *Compute the sine and cosine of tuple Phi
    tuple_cos(Phi,Cos)
    tuple_sin(Phi,Sin)
    *Compute the coordinate of the upper-right vertex of rectangle
    RowTem:=CenterY-Len1*Sin-Len2*Cos
    ColTem:=CenterX+Len1*Cos-Len2*Sin
    VertexesY:=[VertexesY,RowTem]
    VertexesX:=[VertexesX,ColTem]

    *Compute the coordinate of the upper-left vertex of rectangle
    RowTem:=CenterY+Len1*Sin-Len2*Cos
    ColTem:=CenterX-Len1*Cos-Len2*Sin
    VertexesY:=[VertexesY,RowTem]
    VertexesX:=[VertexesX,ColTem]

    *Compute the coordinate of the bottom-left vertex of rectangle
    RowTem:=CenterY+Len1*Sin+Len2*Cos
    ColTem:=CenterX-Len1*Cos+Len2*Sin
    VertexesY:=[VertexesY,RowTem]
    VertexesX:=[VertexesX,ColTem]

    *Compute the coordinate of the bottom-right vertex of rectangle
    RowTem:=CenterY-Len1*Sin+Len2*Cos
    ColTem:=CenterX+Len1*Cos+Len2*Sin
    VertexesY:=[VertexesY,RowTem]
    VertexesX:=[VertexesX,ColTem]
    return ()

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    耍酷
    2019-5-8 08:38
  • 签到天数: 254 天

    连续签到: 1 天

    [LV.8]以坛为家I

    2

    主题

    28

    帖子

    1439

    积分

    Rank: 6Rank: 6

    积分
    1439
     楼主| 发表于 2017-5-13 15:10:06 | 显示全部楼层

    黄金VIP |主题 2|帖子 28|积分 1439

    代码为求解过程的综合结果,省略的部分小伙伴们需要自己推导;P

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    开心
    2019-10-10 14:44
  • 签到天数: 163 天

    连续签到: 1 天

    [LV.7]常住居民III

    0

    主题

    30

    帖子

    190

    积分

    Rank: 1

    积分
    190

    最佳新人

    发表于 2017-8-5 08:43:49 | 显示全部楼层

    试用员工 |主题 0|帖子 30|积分 190

    英文描述可以提高逼格哦!

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    可怜
    昨天 09:08
  • 签到天数: 486 天

    连续签到: 1 天

    [LV.9]以坛为家II

    28

    主题

    192

    帖子

    1700

    积分

    Rank: 7Rank: 7Rank: 7

    积分
    1700

    活跃会员优秀版主切换助手验证会员

    发表于 2018-1-19 14:47:10 | 显示全部楼层

    版主 |主题 28|帖子 192|积分 1700

    好东西分享

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    点赞
    2019-9-30 14:53
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    1

    帖子

    6

    积分

    Rank: 1

    积分
    6
    发表于 2019-9-30 14:53:28 | 显示全部楼层

    试用员工 |主题 0|帖子 1|积分 6

    大神,推导不出来哇,求救啊。

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver|  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by 51Halcon机器视觉 X3.4 Licensed© 2015-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表