python围绕点旋转

举报
风吹稻花香 发表于 2021/09/02 00:38:12 2021/09/02
【摘要】 #点p_x, p_y 围绕center_x, center_y顺时针旋转angle度 import cv2import mathimport numpy as npimport os def get_degree(p1, p0): aaa = math.degrees(math.atan2((p1[1] - p0[1])...

#点p_x, p_y 围绕center_x, center_y顺时针旋转angle度


  
  1. import cv2
  2. import math
  3. import numpy as np
  4. import os
  5. def get_degree(p1, p0):
  6. aaa = math.degrees(math.atan2((p1[1] - p0[1]), (p1[0] - p0[0])))
  7. if aaa < 0:
  8. aaa = 360 + aaa
  9. aaa = (aaa + 90)
  10. if aaa > 360:
  11. aaa = aaa - 360
  12. return aaa
  13. def rotate_image(box_points, angle, scale=1.):
  14. c_x=box_points[0][0]
  15. c_y=box_points[0][1]
  16. rot_mat = cv2.getRotationMatrix2D((c_x, c_y), angle, scale)
  17. rot_move = np.dot(rot_mat, np.array([0, 0, 0]))
  18. rot_mat[0, 2] += rot_move[0]
  19. rot_mat[1, 2] += rot_move[1]
  20. new_box_points = []
  21. for point in box_points:
  22. new_points = []
  23. p_x, p_y = point[2],point[3]
  24. point1 = np.dot(rot_mat, np.array([p_x, p_y, 1]))
  25. new_points.append((point1))
  26. new_box_points.append(new_points)
  27. return ne

文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/120028909

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。