【python入门】用opencv画圆
1、用numpy构造一个500*365的白色画面:
img=np.ones((365,500,3))*255

2、在画面中心,画一个半径为10的蓝色小圆圈:
u,v=img.shape[:2]
cv2.circle(img,(int(v/2),int(u/2)),10,(255,0,0),2)
注意看u和v的位置。

3、我们要把坐标原点放到画面中心,我要做一个自定义函数:
def pc(img,pt,r):
u,v=img.shape[:2]
cv2.circle(img,(int(v/2)+pt[0],int(u/2)+pt[1]),
r,(255,0,0),2)
return img
用这个自定义函数作图:
img=pc(img,[0,0],100)

4、for i in range(2,150,5):
img=pc(img,[0,0],i)

5、看看点(30,60)的位置:
img=pc(img,[30,60],10)
竟然在原点的下面。

6、img=pc(img,[30,-60],10)
这有点反常规了。

7、为此,修改自定义函数,使之符合常规:
def pc(img,pt,r):
u,v=img.shape[:2]
cv2.circle(img,(int(v/2)+pt[0],
int(u/2)-pt[1]),
r,(255,0,0),1)
return img
img=pc(img,[30,60],2)

8、这样,可以画一条由圆圈组成的曲线:
for i in range(-300,300,3):
img=pc(img,[i,int(60*np.sin(i/60))],
abs(int(10*np.sin(i/10))))
