使用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()
相关推荐
iAm_Ike4 小时前
Go 中自定义类型与基础类型间的显式类型转换详解
jvm·数据库·python
iuvtsrt4 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python
旦莫5 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容
人工智能·python·测试开发·pytest·ai测试
知识领航员6 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
如何原谅奋力过但无声8 小时前
【灵神高频面试题合集06-08】反转链表、快慢指针(环形链表/重排链表)、前后指针(删除链表/链表去重)
数据结构·python·算法·leetcode·链表
deephub8 小时前
2026 RAG 选型指南:Vector、Graph、Vectorless 该怎么挑
人工智能·python·大语言模型·rag
狐狐生风10 小时前
使用 UV 创建并运行 Python 项目(完整步骤)
python·uv
噜噜噜阿鲁~10 小时前
python学习笔记 | 9.2、模块-安装第三方模块
笔记·python·学习
现代野蛮人10 小时前
【深度学习】 —— VGG-16 网络实现猫狗识别
网络·人工智能·python·深度学习·tensorflow
一个小猴子`10 小时前
Pytorch快速复习
人工智能·pytorch·python