1.生成一幅size=[512,512]图像
import cv2
import numpy as np
#生成一幅黑底图像
img_black=np.zeros([512,512], dtype = np.uint8)
#生成一幅白底图像
img=255-img_black
2.绘制一个多边形
#绘制图像
lines = np.array([[[100,100], [300,150],[400,350], [50,400]]], dtype = np.int32) # 必须是array数组的形式
cv2.polylines(img, lines, 1, 0)
#黑色填充多边形
cv2.fillPoly(img,lines,0)
3.画出绘制多边形的最小外接矩形
#画出图像的最小外接矩形
rect=cv2.minAreaRect(lines)
# 中心坐标
x, y = rect[0]
#画一个以x,y为中,r=100的圆
cv2.circle(img, (int(x), int(y)), 100, (0, 255, 0), 5)
# 长宽,总有 width>=height
width, height = rect[1]
# 角度:[-90,0)
angle = rect[2]
print('width=', width, 'height=', height, 'x=', x, 'y=', y, 'angle=', angle)
box=cv2.boxPoints(rect)
box=np.int32([box])
cv2.polylines(img, box, 1, 0)
4.旋转当前图像,使外接矩形的长宽与图像的坐标系平行
# 逆时针旋转30度
M = cv2.getRotationMatrix2D((512 / 2, 512 / 2), angle, 1)
img = cv2.warpAffine(img, M, (512, 512))
cv2.imshow("zeros",img)
cv2.waitKey(0)