#查看 cv2 有哪些被支持的事件

import cv2

import numpy as np

dir_cv2 = dir((cv2))

print(type(dir_cv2))

print(len(dir_cv2))

events = [i for i in dir(cv2) if 'EVENT' in i]

print(len(events))

print(events)

'''

18个事件

['EVENT_FLAG_ALTKEY', 'EVENT_FLAG_CTRLKEY', 'EVENT_FLAG_LBUTTON', 'EVENT_FLAG_MBUTTON', 'EVENT_FLAG_RBUTTON', 'EVENT_FLAG_SHIFTKEY',

'EVENT_LBUTTONDBLCLK', 'EVENT_LBUTTONDOWN', 'EVENT_LBUTTONUP', 'EVENT_MBUTTONDBLCLK', 'EVENT_MBUTTONDOWN', 'EVENT_MBUTTONUP',

'EVENT_MOUSEHWHEEL', 'EVENT_MOUSEMOVE', 'EVENT_MOUSEWHEEL', 'EVENT_RBUTTONDBLCLK', 'EVENT_RBUTTONDOWN', 'EVENT_RBUTTONUP']

'''

# 用到的函数

# def setMouseCallback(windowName, onMouse, param=None)

# cv2.setMouseCallback()

# 鼠标回调函数

# 这里注意,回调函数一定是要有五个参数

# 这里event 参数是事件 响应 EVENT_*事件的 (但是不响应 EVENT_FALG_*事件)

# x, y 参数是鼠标的坐标

# flags 参数是有没有其他特殊控制,比如在按左键的时候,按了Ctrl,Shift,Alt键等,参数也是刚刚上面的EVENT列表中的,通过事件名可以找到对应flags

# flags 参数是相应 EVENT_FLAG_* 的事件名

# param 参数是 setMouseCallback 的第三个参数

def mouse_call_back_fun(event, x, y, flags, param):

# print(f'tpye(parma) = {type(param)}') #这里 输出

if event == cv2.EVENT_LBUTTONDBLCLK:

cv2.circle(param[0], (x, y), param[1], (255, 255, 0), -1)

if flags == cv2.EVENT_FLAG_ALTKEY: # 按下alt键,拖动鼠标

cv2.rectangle(param[0], (x, y), (x + param[1], y + param[1]), (0, 255, 0), 3)

img = np.zeros((512, 512, 3), np.uint8)

cv2.namedWindow('mouse_call_back')

cv2.setMouseCallback('mouse_call_back', mouse_call_back_fun, [img, 20]) #这里通过设置 param参数,传递了 img 和 一个整数给回调函数

while(True):

cv2.imshow('mouse_call_back', img)

if cv2.waitKey(20) & 0xFF == 27:

break

cv2.destroyAllWindows()

python鼠标碰撞_Python+opencv第5节鼠标响应事件,pythonopencv,第五节相关推荐

  1. python监听键盘库_python监听、操作键盘鼠标库pynput详细教程|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ § 0.0.0 前言 监听.操作鼠标.键盘是实现自动化的捷径,比如我实现自动化签到用到了模拟键盘操作. p ...

  2. python数据挖掘视频_python+opencv实时视频目标检测

    python+opencv实时视频目标检测 opencv环境 1.访问Python Extension Packages for Windows,下载python对应版本的opencv. 比如小编下载 ...

  3. python 视频播放 拖动_python + opencv鼠标拖动视频区域裁剪

    # -*- coding: utf-8 -*- import sys import cv2 import numpyas np import time import sys # # from PyQt ...

  4. python鼠标绘图_python opencv入门 鼠标绘图(4)

    目标: 学习如何操作鼠标事件 学习cv2.setMouseCallback()函数 简单样例: 首先创建一个鼠标的回调函数,当鼠标事件触发时,该函数执行. 鼠标事件有很多种,比如左键右键,双击等等,该 ...

  5. 简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...

    python opencv如何实现简易画图板?本篇文章小编给大家分享一下python opencv实现简易画图板代码,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下 ...

  6. 如何用python画长方形_python opencv 画矩形跟老齐学Python之用Python计算

    一提到计算机,当然现在更多人把她叫做电脑,这两个词都是指computer.不管什么,只要提到她,普遍都会想到她能够比较快地做加减乘除,甚至乘方开方等.乃至于,有的人在口语中区分不开计算机和计算器. 那 ...

  7. python皮同_Python OpenCV 图像的双线性插值算法,全网最细致的算法说明_橡皮擦,一个逗趣的互联网高级网虫-CSDN博客...

    原文作者:梦想橡皮擦 原文标题:Python OpenCV 图像的双线性插值算法,全网最细致的算法说明 发布时间:2021-02-17 20:55:32 Python OpenCV 365 天学习计划 ...

  8. opencv python是什么_Python+OpenCV 十几行代码模仿世界名画

    现在很多人都喜欢拍照(自拍).有限的滤镜和装饰玩多了也会腻,所以就有 APP 提供了模仿名画风格的功能,比如 prisma.versa 等,可以把你的照片变成梵高.毕加索.蒙克等大师的风格. 这种功能 ...

  9. python图像边缘检测_python opencv实现图像边缘检测

    本文利用python opencv进行图像的边缘检测,一般要经过如下几个步骤: 1.去噪 如cv2.GaussianBlur()等函数: 2.计算图像梯度 图像梯度表达的是各个像素点之间,像素值大小的 ...

最新文章

  1. 教程:6、打印文件和发送邮件
  2. 一体广告机实现思路,非常实用(二)
  3. Apache+PHP环境搭建
  4. MTV: Django眼中的MVC
  5. 8086加法指令ADD
  6. 命令行 java文本编辑工具 重载 内存区域 栈 堆
  7. Redis线程IO模型的秘密知多少
  8. Python中的偏函数和函数柯里化
  9. python调用数据库存储过程_python调用MySql存储过程
  10. VS错误之error LNK2019: 无法解析的外部符号
  11. pytorch-minst手写字符识别实战
  12. 巴塞尔协议中的计算公式_巴塞尔协议演变及计算方法简单解析
  13. Linux 实现OpenSSL 服务器端客户端通信
  14. 希望我能帮助你:关于软件开发的建议
  15. python游戏引擎3d_一个人独立开发 3D 游戏引擎可能吗?
  16. Firefox input 光标丢失
  17. xilinx license申请(host value ID查看方法)
  18. Pytorch中, torch.einsum详解。
  19. Azkaban搭建3.32.0
  20. 物联网、智慧城市、增强现实(AR)与虚拟现实(VR)、区块链技术、语音识别、人工智能、数字汇流是大数据未来应用的七大发展方向

热门文章

  1. spring项目获取ServletContext
  2. Eclipse怎样把文件系统形式的项目作为工程直接导入?
  3. .Net的后台服务技术有哪些?
  4. 升级WordPress后开启友情链接管理模块
  5. 学习IDisposable,对于此中的不解……请高手指点
  6. 关于AI Architecture未来的一些思考
  7. 中交国通智能科技 招募 AI目标识别技术顾问
  8. ECCV 2020 论文大盘点-图像与视频分割篇
  9. 学习Python技术,怎么才能更好找到工作
  10. 收藏 | 机器学习领域必知必会的12种概率分布(附Python代码实现)