【python入门】用opencv画圆

2025-11-14 20:39:44

1、用numpy构造一个500*365的白色画面:

img=np.ones((365,500,3))*255

【python入门】用opencv画圆

2、在画面中心,画一个半径为10的蓝色小圆圈:

u,v=img.shape[:2]

cv2.circle(img,(int(v/2),int(u/2)),10,(255,0,0),2)

注意看u和v的位置。

【python入门】用opencv画圆

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)

【python入门】用opencv画圆

4、for i in range(2,150,5):

    img=pc(img,[0,0],i)

【python入门】用opencv画圆

5、看看点(30,60)的位置:

img=pc(img,[30,60],10)

竟然在原点的下面。

【python入门】用opencv画圆

6、img=pc(img,[30,-60],10)

这有点反常规了。

【python入门】用opencv画圆

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)

【python入门】用opencv画圆

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))))

【python入门】用opencv画圆

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢