使用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()
相关推荐
qq_342295824 分钟前
如何备份大量小表组成的数据库_并行导出与多文件并发写入.txt
jvm·数据库·python
justjinji8 分钟前
MySQL存储过程中如何防止SQL注入_使用参数化查询规范
jvm·数据库·python
qq_2069013910 分钟前
mysql索引排序规则设置方法_mysqlCollation对索引影响
jvm·数据库·python
HHHHH1010HHHHH17 分钟前
如何快速重置SQL表中的自增ID_使用TRUNCATE与重置命令
jvm·数据库·python
m0_7349497918 分钟前
html怎么转konva舞台_Konva如何在HTML中创建2D绘图舞台
jvm·数据库·python
m0_7164300721 分钟前
如何在非受控输入中实时显示值(不依赖状态更新)
jvm·数据库·python
2201_7610405921 分钟前
如何统计SQL分组汇总数据_详解GROUP BY与HAVING用法
jvm·数据库·python
2301_7641505624 分钟前
CSS如何通过BEM提升质量_应用命名规范减少Bug产生
jvm·数据库·python
2301_7641505624 分钟前
CSS如何实现鼠标悬浮放大图片_使用transform scale效果
jvm·数据库·python
214396530 分钟前
mysql如何处理不走索引的OR查询_使用UNION ALL优化重写
jvm·数据库·python