opencv 控制鼠标键盘实现功能setMouseCallback

鼠标事件类型 OpenCV 支持多种鼠标事件类型,常见的包括:

cv2.EVENT_LBUTTONDOWN:左键按下

cv2.EVENT_RBUTTONDOWN:右键按下

cv2.EVENT_MBUTTONDOWN:中键按下

cv2.EVENT_LBUTTONUP:左键释放

cv2.EVENT_RBUTTONUP:右键释放

cv2.EVENT_MBUTTONUP:中键释放

cv2.EVENT_MOUSEMOVE:鼠标移动

cv2.EVENT_LBUTTONDBLCLK:左键双击

cv2.EVENT_RBUTTONDBLCLK:右键双击

cv2.EVENT_MBUTTONDBLCLK:中键双击

代码

实现点击鼠标左键不放移动可以画图,点击c键盘去掉恢复

import cv2
import numpy as np# 定义全局变量
drawing = False
ix, iy = -1, -1# 定义鼠标回调函数
def mouse_callback(event, x, y, flags, param):global drawing, ix, iyif event == cv2.EVENT_LBUTTONDOWN:drawing = Trueix, iy = x, yelif event == cv2.EVENT_MOUSEMOVE:if drawing:cv2.line(img, (ix, iy), (x, y), (0, 123, 255), 2)  # 使用 BGR 颜色格式,红色为 (0, 0, 255)ix, iy = x, yelif event == cv2.EVENT_LBUTTONUP:drawing = Falsecv2.line(img, (ix, iy), (x, y), (0, 133, 255), 2)  # 使用 BGR 颜色格式,红色为 (0, 0, 255)# 创建一个纯白底图
img = np.ones((512, 512, 3), np.uint8) * 255  # 创建一个纯白图像# 创建一个窗口
cv2.namedWindow('Image')# 设置鼠标回调函数
cv2.setMouseCallback('Image', mouse_callback)# 显示图像并等待用户交互
while True:cv2.imshow('Image', img)key = cv2.waitKey(1) & 0xFFif key == 27:  # 按下 ESC 键退出breakelif key == ord('c'):  # 'c'键清除画布img = np.ones((480, 640, 3), dtype=np.uint8) * 255# 保存图像
cv2.imwrite('output_image.jpg', img)cv2.destroyAllWindows()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401691.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HOW - 用腾讯蓝盾部署一个 Web 应用

目录 一、介绍二、项目、流水线和 Stage1. 项目(Project)2. 流水线(Pipeline)3. Stage(阶段)示例:配置一个简单的 CI/CD 流程的基本步骤总结 三、一条完整的流水线包括什么 Stage1. 源代码管理&…

数据库-DML语言-数据操作语言

定义 DML是对表中数据进行操作的语言,涉及的关键字:INSERT UPDATE DELETE INSERT:向表中插入新数据的语句UPDATE:修改表中数据的语句DELETE:删除表中数据的语句 准备工作 USE mydb; 使用mydb库 CREATE TABLE person( 创建表personname VARCHAR(30),age INT…

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

系统版本: ky10.x86_64 下载安装包并上传 openssh下载地址 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable openssl下载地址 https://openssl-library.org/source/index.html zlib下载地址 https://zlib.net/fossils/ 上传安装包 备份配置文件 cp -r /etc/ssh /et…

高德地图SDK Android版开发 5 地图交互操作

高德地图SDK Android版开发 5 地图交互操作 前言控件控件介绍接口UiSettingsAMapOptions 示例代码Logo指南针比例尺缩放按钮 效果图 地图手势地图手势方法说明地图手势开关指定屏幕中心点的手势操作 地图手势事件地图点击事件监听接口地图长按事件监听接口地图触摸事件监听接口…

Python 6行代码写北京时间时钟(10帧 可调) 天地良心

今天看到别的大佬用Python写时钟 我密集恐惧症都犯了 十来个定义函数 我看也看不懂 代码还有整整78行 还是在我改良后的 改良前有98行 我删注释 优化函数名(比如把penup改成pu) 这个文件照样有5KB 并且在帧数取决于电脑性能 我运行了一下 电脑都卡出蓝屏了 于是我连夜赶…

云动态摘要 2024-08-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 全球加速 GA - 新增“巴西(圣保罗)”、“沙特(利雅得)”接入点 华为云 2024-08-12 全球加速服务新增开通“巴西(圣保罗)”、“沙特&a…

CAN总线-----帧格式

目录 前言 一、CAN总线帧格式分类 1.数据帧(重点) 2.遥控帧 3.错误帧 4.过载帧 5.间隔帧 二、位填充 三、波形实例 前言 本期我们就开始学习CAN总线的帧格式,对应帧格式的话,在前面我们学习I2C协议和SPI协议等协议的时候…

使用功率器件比如MOSFET瞬态热阻曲线计算参数

使用功率器件比如MOSFET瞬态热阻曲线计算参数 1.概述2.查看 ZθJC 图3.使用 ZθJC 图估算结温升4.应用案例5.使用 ZθJC 图估算 MOSFET 峰值电流能力6.应用实例 资料来自网络,仅供学习使用 1.概述 功率 MOSFET 数据表包括归一化瞬态热阻抗图:结至外壳 …

怎么将pdf转为ppt文件?pdf转ppt的8个方法

在诸多职场与学术交流的场合中,我们时常面临将详尽的PDF文件转化为生动且易于编辑的PPT演示文稿的需求。这一转换不仅是为了满足演示时的灵活性,更是为了提升信息传递的效率与观众的理解度。从简单的在线工具到功能全面的专业软件,我们拥有多…

概要设计遇到需求变更,6大应对措施

有效地应对概念设计过程中的需求变更,有助于项目灵活适应市场与用户变化,减少后期调整成本,提升产品竞争力与用户满意度,促进项目顺利推进和高质量交付。未能及时有效应对概念设计中的需求变更,往往会导致项目偏离原定…

“论NoSQL数据库技术及其应用”写作框架,软考高级,系统架构设计师

论文真题 随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0 网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展…

[C++] STL (multi)map/(multi)set简介

标题:[C] STL (multi)map/(multi)set简介 水墨不写bug 目录 前言: 一、set简介 1.set简介 2.set的常见用法 二、map简介 1.map简介 2.map使用 三、multiset简介 1.multiset简介 2.multiset使用 四、multimap简介 1.multimap简介 2.multim…

24小时不间断守护:输电线路防山火在线监测装置|防山火利器

24小时不间断守护:输电线路防山火在线监测装置|防山火利器 “一年之计在于秋”虽然传统上强调秋季作为收获与规划的重要时节,但同时也提醒我们,这个季节也伴随着一系列的自然挑战,如火灾风险的增加。针对输电线路而言&#xff0c…

制造业生产管理的困境及MES系统解决方案介绍:盘古信息IMS

在当今竞争激烈的制造业环境中,企业面临着前所未有的生产管理挑战。从计划执行的灵活性不足、过程监控的缺失,到质量控制的挑战、供应链协同的难题,每一个环节都亟需创新与优化。盘古信息MES系统,作为全球领先的制造运营管理工业软…

秋招突击——8/15——知识补充——垃圾回收机制

文章目录 引言正文指针引用可达性分析算法垃圾回收算法标记清除算法标记整理算法复制分代收集 垃圾收集器Serial收集器ParNew并行收集器Parallel Scavenge吞吐量优先收集器Serial Old老年代收集器Parallel old收集器CMS收集器G1收集器(Garbage First垃圾优先&#x…

MySQL:查询(万字超详细版)

💎所属专栏: MySQL 💎1. 单表查询 💎1.1 全列查询和指定列查询 全列查询: select * from exam; 在实际开发中不要使用 * 来进行查询,因为数据库会很大,影响效率 指定列查询: se…

IPC进程间通信

信号 信号是一种终端机制,程序运行到一半的时候接收到了某种通知,程序就会立刻中断运行,转而去处理通知。 登记信号 一个进程只会接收默认的几个信号 如果想要让一个进程接收特定信号的话,必须提前在该进程中登记一下想要接收…

如何进行长截图的两种方法

前言 本文主要讲2种截图方式,分别是谷歌和QQ。 谷歌分为Web端 和 移动端,选一种即可。 第一种:谷歌浏览器控制台自带的 1.先把控制台语言更改为中文,方便查看 ①.按F12,点击设置面板 ②.修改语言为中文并关闭 ③.点击…

2024-08-07升级记录:北斗卫星导航系统轨道信息解释

北斗三号全球星座由地球静止轨道(GEO)、倾斜地球同步轨道(IGSO)、中圆地球轨道(MEO)三种轨道卫星组成,北斗人称这三种卫星为“北斗三兄弟”。 三种轨道区别: 1、GEO卫星 位于距地球约…

MySQL索引的性能优化

1.数据库服务器的优化步骤 在数据库调优中,我们的目标就是响应时间更快,吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该如何思考呢&#xf…