使用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()
相关推荐
NPE~9 分钟前
[爬虫]获取某鱼网页版商品数据
爬虫·python·教程·逆向
天若有情67310 分钟前
【实战】从零开发企业级 B 端风格字符串值管理系统(Python+MySQL)
开发语言·python·mysql·企业级应用·b端应用
郝学胜-神的一滴10 分钟前
深度学习入门全解析:从核心概念到实战基础 | 技术研讨会精华总结
人工智能·python·深度学习·算法·cnn
一方热衷.16 分钟前
YOLO26-OBB ONNXruntime部署 python/C++
开发语言·c++·python
薛不痒26 分钟前
大模型(2):大模型推理文本分类
人工智能·python·深度学习·机器学习
yuyuxun127 分钟前
基于JSP购物网站系统的设计与实现 毕业设计-附源码03645
java·开发语言·python·django·flask·课程设计·pygame
常利兵1 小时前
一文搞懂双Token、SSO与第三方权限打通,附实战代码
python·gitee·kotlin
光羽隹衡1 小时前
计算机视觉——Opencv(背景建模实现目标检测)
opencv·目标检测·计算机视觉
BatyTao1 小时前
Python从零起步-数据容器
开发语言·python
派葛穆1 小时前
Unity-鼠标悬停改变图像位置
unity·计算机外设·交互