Python机器视觉--OpenCV入门--鼠标事件与TrackBar控件(含小项目:OpenCV调色板)
1.鼠标事件与TrackBar控件
1.1控制鼠标
OpenCV允许我们对窗口上的鼠标动作做出响应.
setMouseCallback(winname, callback, userdata) winname是窗口的名字, callback是回调函数, userdata是给回调函数的参数.
callback(event, x, y, flags, userdata)回调函数必须包含这5个参数. event是事件(鼠标移动, 左键, 右键等), x,y是点鼠标的坐标点, flags主要用于组合键, userdata就是上面的setMouseCallback的userdata
鼠标事件:
- 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键
- EVENT_FLAG_SHIFTKEY 16 按下shift键
- EVENT_FLAG_ALTKEY 32 按下alt键
import cv2
import numpy as npdef mouse_callback(event, x, y, flags, userdata):print(event, x, y, flags, userdata)cv2.namedWindow('mouse', cv2.WINDOW_NORMAL)
cv2.resizeWindow('mouse', 640, 360)# 设置鼠标回调函数
cv2.setMouseCallback('mouse', mouse_callback, '123')# 显示窗口和背景
# 生成全黑的图片
img = np.zeros((360, 640, 3), np.uint8)
while True:cv2.imshow('mouse', img)key = cv2.waitKey(1)if key & 0xFF == ord('q'):breakcv2.destroyAllWindows()
1.2 TrackBar控件
TrackBar控件
- createTrackbar(trackbarname, winname, value, count, onChange) 创建TrackBar控件, value为trackbar的默认值, count为bar的最大值, 最小为0
- getTrackbarPos(trackbarname, winname) 获取TrackBar当前值
2.小项目:使用鼠标事件和TrackBar控件 实现调色板
## trackbar
import cv2
import numpy as np# 创建窗口
cv2.namedWindow('trackbar', cv2.WINDOW_NORMAL)
cv2.resizeWindow('trackbar', 640, 480)
# 定义回调函数
def callback(value):print(value)# 创建trackbar
cv2.createTrackbar('R', 'trackbar', 0, 255, callback)
cv2.createTrackbar('G', 'trackbar', 0, 255, callback)
cv2.createTrackbar('B', 'trackbar', 0, 255, callback)# 创建一个背景图片
img = np.zeros((480,640,3), np.uint8)while True:# 获取当前trackbar的值r = cv2.getTrackbarPos('R', 'trackbar')g = cv2.getTrackbarPos('G', 'trackbar')b = cv2.getTrackbarPos('B', 'trackbar')# 改变背景图颜色img[:] = [b, g, r]cv2.imshow('trackbar', img)key = cv2.waitKey(1)if key & 0xFF == ord('q'):breakcv2.destroyAllWindows()
运行后如图所示
我们尝试调整颜色
RGB三原色均可以正确显示,我们尝试任意组合一个颜色
Python机器视觉--OpenCV入门--鼠标事件与TrackBar控件(含小项目:OpenCV调色板)相关推荐
- 使用Python和OpenCV捕获鼠标事件,并裁剪图像
使用Python和OpenCV捕获鼠标事件,并裁剪图像 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python和OpenCV捕获鼠标事件.还演示了如何快速裁剪和提取图像区域,这在为自己的自 ...
- Qt安装事件过滤器、过滤子控件事件、截获控件按键、鼠标事件
Qt安装事件过滤器.过滤子控件事件.截获控件按键.鼠标事件 Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理. 假设我们有一个C ...
- python 阻止锁屏_想要自己的手机锁屏更加安全吗?python带你打造个性的锁屏控件...
原标题:想要自己的手机锁屏更加安全吗?python带你打造个性的锁屏控件 Python是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了 ...
- C#之windows桌面软件第十二课:电脑ADC值显示(上位机),记忆上次串口号,并用TrackBar控件显示ADC值
C#之windows桌面软件第十二课:电脑ADC值显示(上位机),记忆上次串口号,并用TrackBar控件显示ADC值 using System; using System.Collections.G ...
- jquery实现上下左右键盘监听_基于 jQuery 实现键盘事件监听控件
最近项目里要做一个画板,需要对键盘事件进行监听,来进行诸如撤回.重做.移动.缩放等操作,因此顺手实现了一个键盘事件监听控件,期间略有收获,整理出来,希望对大家有所帮助,更希望能获得高手的指点. 1. ...
- WPF:鼠标拖曳、拖动控件
效果 布局 <Grid Grid.Row="0" Name="gridChart" Margin="50,20" SizeChange ...
- 在Paint事件中绘制控件(边框)
在Paint事件中绘制控件(边框) 单纯的自己记录,将来会继续添加,侥幸被大家发现了的话请不要太鄙视... private void panel4_Paint(object sender, Paint ...
- python八角图形绘制_(Python)从零开始,简单快速学机器仿人视觉Opencv—第四节:OpenCV处理鼠标事件...
准备工作 使用工具:Python3.5 涉及包:cv2 numpy 涉及函数 函数:cv2.setMouseCallback() 任务开始 简单的程序,在图片上双击过的位置绘制一个圆圈 任务1.创建鼠 ...
- Python Opencv 实现鼠标事件(包含一个练习)——事件触发讲解·以及鼠标回调函数的实现
文章目录 鼠标事件概述 鼠标事件发生的结构 鼠标回调函数的标准格式 opencv下包含的所有事件--包含flag和event(可以看一下,熟悉常见事件范围) 鼠标事件的实现函数 一个完整的鼠标事件由一 ...
最新文章
- .NET基础示例系列之十六:制做进程监视器
- 物体抓取位姿估計算法綜述_基于深度学习的物体抓取位置估计
- lampp mysql 等待响应时间很长,XAMPP 最大执行时间(max_execution_time) 问题
- tensorflow-Inception-v3模型训练自己的数据代码示例
- php toupper,jquery如何进行字母大小写转换?
- mysql记录操作日志
- poj 2696 A Mysterious Function
- css规则中区块block,CSS的命名方式:BEM(区块、元素、修饰符)
- 网页自动关机代码HTML,win10系统打开邮件显示网页html源代码如何解决
- linux 按日期复制文件夹,Linux 按文件日期分类文件
- 方便的Chrome取色插件ColorPick Eyedropper [设计, FE必备]
- 我眼中的ASP.NET Core之微服务 (二)
- Make Menuconfig详解 (配置内核选择)
- 【Android安全】JEB技巧汇总
- html中如何调整图片的对比色,风光照片如何调出冷暖对比色?后期案例分享
- python脚本课程_python选课脚本
- 依赖计算机英语作文,过度依赖电脑的英语作文
- 射击末世--建造者模式
- 你的身份证,到底绑定了多少微信账号?
- 1、Swoole是什么?你可以通过swoole干些什么?