多语言展示
当前在线:1814今日阅读:27今日分享:41

【python入门】opencv画正多边形

本文,用opencv,在图片里面画正多边形。
工具/原料
1

电脑

2

python

方法/步骤
1

平面上的旋转,可以用旋转矩阵左乘来实现,所以,先给出旋转矩阵:def xzjz(angle):    a=angle*np.pi/180    A=np.array([[np.cos(a),-np.sin(a)],                [np.sin(a),np.cos(a)]])    return A比如,旋转60°的旋转矩阵是:

2

用旋转矩阵可以实现旋转:def xz(pt1,pt2,angle):    pt1=np.array(pt1)    pt2=np.array(pt2)    vector0=pt2-pt1    A=xzjz(angle)    pt=np.dot(A,vector0)    return pt+pt2返回的是pt1绕pt2旋转之后,得到的点的坐标。

3

连续旋转n-1次,可以获得正n边形的n个顶点:def zdbx(pt1,pt2,n):    pt1=np.array(pt1)    pt2=np.array(pt2)    angle=360/n    A=[pt1,pt2]    for i in range(n-1):        pt=xz(pt1,pt2,angle)        pt1=pt2        pt2=pt        A.append(np.int32(pt))    return np.array(A)比如,正方形的四个定点后面再重复写第一个顶点,连接起来是一个封闭的正方形。

4

以画布中心为坐标原点,画指定的正多边形。

5

plotzdbx(img,(0,0),(100,0),6)

6

绕画布中心旋转的正多边形。

推荐信息