使用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 分钟前
Android studio中初步使用OpenCV库
android·opencv
AC赳赳老秦1 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
FoldWinCard2 小时前
D6 Python 基础语法 --- 保留关键字
开发语言·python
暮暮祈安2 小时前
Celery 新手入门指南
java·数据库·python·flask·httpx
JustNow_Man3 小时前
每日高频场景英文口语
python
风吹心凉3 小时前
python3基础2026.7.22
开发语言·python
小猴子爱上树5 小时前
一站式解决图片视频翻译难题的高效AI工具
人工智能·python·音视频
weixin_538601975 小时前
智能体测开Day31
开发语言·python
lbb 小魔仙5 小时前
Git + Python 项目工作流最佳实践:pre-commit、CI、CHANGELOG 自动化
git·python·ci/cd
dyxal5 小时前
最长公共子序列(LCS)
python·算法