代码拉取完成,页面将自动刷新
import numpy as np
import cv2
import matplotlib.pyplot as plt
def draw_rect(rect):
# 在im画布上画矩形rect
im = np.zeros([240, 320], dtype = np.uint8)
cv2.polylines(im, [rect], 1, 255)
plt.imshow(im)
plt.show()
def rotate_rect(rect, angle):
# 输出rect旋转后的矩形四个点的坐标,angle为正及顺时针旋转,为负及逆时针旋转
(x,y),(w,h),a = cv2.minAreaRect(rect)
rect_r = ((x,y), (w,h), a+angle)
return cv2.boxPoints(rect_r).astype(np.int32)
# rect = np.array([[100, 50], [150, 50], [150, 150], [100, 150]], dtype=np.int32)
def rect2point9(rect):
point9 = []
rect_x = np.mean(rect[:, 0])
rect_y = np.mean(rect[:, 1])
point9.append([rect_x, rect_y])
for p in range(len(rect)):
point9.append(rect[p])
point9.append((rect[p,:]+rect[(p+1)%len(rect),:])/2)
return np.array(point9)
# 旋转矩形框 x y w h a
rect_a = ((100,100), (50,100), 45)
draw_rect(cv2.boxPoints(rect_a).astype(np.int32))
# 4个点 x y
rect_xy = cv2.boxPoints(rect_a).astype(np.float32)
print(rect_xy)
# 9个点 x y
point9 = rect2point9(rect_xy)
print(point9)
#旋转矩形框 x y w h a
rect_a = cv2.minAreaRect(point9)
print(rect_a)
#draw_rect(cv2.boxPoints(rect_a).astype(np.int32))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。