python-opencv控制鼠标操作

学习目标:

OpenCV允许我们对窗口上的鼠标进行操作

  • 掌握 python-OpenCV如何操作鼠标的

学习时间:

`1分钟学废

学习产出:

·setMouseCallback(winname,callback,userdata):
winname是窗口名字,callback是回调函数,userdata是给回调函数的参数
·callback(event,x,y,flags,userdata)回调函数包含5个参数:
event是事件(鼠标移动,左键,右键
x,y是点鼠标的坐标点
flags用于组合键
userdata是setMouseCallback的uesrdata

event:
EVENT_MOUSEMOVE 0 鼠标移动
EVENT_LBUTTONDOWN 1 按下鼠标左键
EVENT_RBUTTONDOWN 2 按下鼠标右键
EVENT_MBUTTONDOWN 3 按下鼠标中键
EVENT_LBUTTONUP 4 左键释放
EVENT_RBUTTONUP 5 右键释放
EVENT_MBUTTONUP 6 中键释放
EVENT_LBUTTONDBLCLK 7 左键双击
EVENT_RBUTTONDBLCLK 8 右键双击
EVENT_MBUTTONDBLCLK 9 中键双击
EVENT_MOUSEWHEEL 10 鼠标滚轮上下滚动
EVENT_MOUSEHWHEEL 11 鼠标左右滚动

flags:
EVENT_FLAG_LBUTTON 1 按下左键
EVENT_FLAG_RBUTTON 2 按下右键
EVENT_FLAG_MBUTTON 4 按下中键
EVENT_FLAG_CRTLKEY 8 按下ctrl键
ECENT_FLAG_SHIFTKEY 16 按下shift键
EVENT_FLAG_ALTKEY 32 按下alt键

import cv2 as cv
import numpy as np

def mouse_callback(event,x,y,flags,userdata):
    print(event,x,y,flags,userdata)
    # 按下鼠标右键推出
    if event == 2:   # 数字2上面文字有解释
        cv.destroyALLWindows()


cv.namedWindow('mouse',cv.WINDOW_NORMAL)   # 设置个窗口
# 宽度和高度
cv.resizeWindow('mouse',640,360)  # 设置下窗口大小

# 设置鼠标回调函数
# '123'为userdata数据
cv.setMouseCallback('mouse',mouse_callback,'123')

# 显示窗口和背景
# 生成全黑图片
# 高度和宽度
img = np.zeros((360,640,3),np.uint8)
while True:
    cv.imshow('mouse',img)
    cv.waitKey(1) & 0xff == ord('q')

cv.destroyALLWindows()

运行结果:在这里插入图片描述打印的数字是指鼠标执行的操作

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值