使用cv2控制鼠标实现circle的拖拽

2.代码

python 复制代码
import numpy as np
import cv2


x_center = [100,200,300,400]
y_center = [200,200,200,200]
radius = 30

def mouse_LButtonDown(event, x, y, flags, param):
    global temp
    if event == cv2.EVENT_LBUTTONDOWN:
        print(f" Down Clicked at ({x}, {y})")

        for i in range(len(x_center)):

            if (x-x_center[i])**2 + (y-y_center[i])**2 <= radius**2:
                temp = i
                print("选中")


    if event == cv2.EVENT_LBUTTONUP:
        print(f" Up Clicked at ({x}, {y})")
        print(temp)
        x_center[temp] = x
        y_center[temp] = y
        print('更新成功')
        print(x_center)
        print(y_center)



cv2.namedWindow('mouse',cv2.WINDOW_NORMAL)
cv2.resizeWindow('mouse',640,480)
cv2.setMouseCallback('mouse', mouse_LButtonDown)

color = (0, 255, 0)


while True:
    img = np.zeros((480, 640, 3), dtype=np.uint8)
    for i in range(len(x_center)):
        cv2.circle(img, (x_center[i], y_center[i]), 30, color, -1, lineType=cv2.FILLED)
    cv2.imshow('mouse', img)
    key =  cv2.waitKey(1)
    if key == ord('q'):
        break

cv2.destroyAllWindows()
相关推荐
闲人编程4 分钟前
Flask 前后端分离架构实现支付宝电脑网站支付功能
python·架构·flask·支付宝·前后端·网站支付·apl
996终结者12 分钟前
同类软件对比(四):Jupyter vs PyCharm vs VS Code:Python开发工具终极选择指南
vscode·python·jupyter·pycharm·visual studio code
果壳~17 分钟前
【Python】爬虫html提取内容基础,bs4
爬虫·python·html
尝试经历体验2 小时前
pycharm突然不能正常运行
python·深度学习·pycharm
jay神2 小时前
基于Python的商品爬取与可视化系统
爬虫·python·数据分析·毕业设计·可视化系统
浪浪山齐天大圣2 小时前
python数据可视化之Matplotlib(8)-Matplotlib样式系统深度解析:从入门到企业级应用
python·matplotlib·数据可视化
F_D_Z3 小时前
【PyTorch】单对象分割
人工智能·pytorch·python·深度学习·机器学习
编程自留地3 小时前
18.4 查看订单
python·django·商城
wanzhong23333 小时前
学习triton-第1课 向量加法
开发语言·python·高性能计算
浊酒南街3 小时前
Pytorch基础入门4
人工智能·pytorch·python