关于RotatedRect与getRotationMatrix2D 的角度问题

记录当时非常不理解的地方。
在一副图片中,画出旋转矩形RotatedRect。然后用getRotationMatrix2D,warpAffine将图片旋转,使得矩形放平。注意旋转矩形是带文字的,所以要不影响阅读。

  • RotatedRect
    角度是正值,代表顺时针旋转。
    测试了几十个旋转矩形,发现负值和大于90的情况很少,大多数是小于90度的。我觉得这可能是角度表示问题。选取了最小角度来表示。
    下图角度就是30度。
    水平位置顺时针旋转了30度
    在这里插入图片描述

下图角度就是90-30=60度(或者说是-30度,但输出RotatedRect.angle的话就是60度)
是从竖直位置顺时针旋转了60度
在这里插入图片描述

  • getRotationMatrix2D
    角度是正值,代表逆时针旋转
    对旋转矩形使用此函数,角度使用RotatedRect.angle的话,可以将矩形放平。
    第一幅图,没问题;第二幅图,会将图片竖过来,影响阅读。
    在这里插入图片描述

如果是长方形,一个解办法是计算width/height,
对于第一幅图,width/height>1,直接旋转矩形的角度即可。正值,逆时针旋转将图片归位
对于第二幅图,width/height<1,这是参数填写 矩形角度-90度 即可,负值的话,就顺时针旋转了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值