python opencv画圆_Python OpenCV中用鼠标绘制变半径圆

本文介绍如何使用Python的OpenCV库在鼠标拖动时动态改变圆的半径,模仿MS Paint的画圆功能。在当前实现中,当鼠标按下并移动时,会显示圆形预览,但遇到一个UnboundLocalError,提示变量'backup'在赋值前被引用。作者寻求解决方案和可能的替代方法。
摘要由CSDN通过智能技术生成

我的问题是关于this tutorial。

在上面的教程中,只要我们拖动鼠标指针,就会画出一个半径恒定的圆(即5像素)。在

我想画一个圆,半径等于鼠标左键拖动的距离。还想在左键按下后移动鼠标指针时显示预览。类似于MS Paint中的情况。在import cv2

import numpy as np

drawing=False

mode=True # True--> Rectangle , False --> Circle

ix,iy=-1,-1

def draw_fig(event,x,y,flags,param):

global ix,iy,drawing,mode,img

if event==cv2.EVENT_LBUTTONDOWN:

drawing=True

ix,iy=x,y

if(not mode):#ie. Drawing Mode==Circle

backup=img

elif event==cv2.EVENT_MOUSEMOVE:

if (drawing):

if(mode):

cv2.rectangle(img,(ix,iy),(x,y),(255,0,0),-1)

else:

#Resetting Canvas

#img=np.zeros((512,512,3),np.uint8)

#cv2.putText(img,'Sankalp',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)

#Showing Circle Preview

cv2.circle(b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值