目标:

  • 学习用OpenCV控制鼠标事件
  • 学习以下函数:cv.setMouseCallback()

一个简单的示例

这里我们来创建一个简单的程序,他会在图片上你双击的位置绘制一个圆圈。首先我们来创建一个鼠标事件回调函数,鼠标事件发生是他就会被执行。鼠标事件可以是鼠标上的任何动作,比如左键按下,左键松开,左键双击等。我们可以通过鼠标事件获得与鼠标对应的图片上的坐标。根据这些信息我们可以做任何我们想做的事。你可以通过执行下列代码查看所有被支持的鼠标事件:

import cv2 as cv
events = [i for i in dir(cv) if 'EVENT' in i]
print( events )

所有的鼠标事件回调函数都有一个统一的格式,他们所不同的地方仅仅是被调用后的功能。我们只需要鼠标事件回调函数做一件事:在双击过的地方绘制一个圆形。下面是代码,可以通过注释理解代码:

import numpy as np
import cv2 as cv# mouse callback function
def draw_circle(event,x,y,flags,param):
if event == cv.EVENT_LBUTTONDBLCLK:
cv.circle(img,(x,y),100,(255,0,0),-1)# Create a black image, a window and bind the function to window
img = np.zer

OpenCV中的 Gui特性-把鼠标作为画笔相关推荐

  1. OpenCV中的GUI特性 —— 绘图+鼠标画笔+轨迹栏调色板

    OpenCV中的GUI特性 -- 绘图+鼠标画笔+轨迹栏调色板 这一部分内容主要包括OpenCV的绘图函数.鼠标回调函数与画图的结合和轨迹栏的使用,绘图函数的传参是关键,鼠标回调函数也是一个相当重要的 ...

  2. pythongui显示图片_opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像...

    #-*- coding: utf-8 -*- """Created on Tue Mar 14 19:39:11 2017 @author: Thinkpad" ...

  3. OpenCV中的GUI特性 —— 图片与视频的读写和显示

    OpenCV中的GUI特性--图片与视频的读写和显示 在这一部分我们将介绍在OpenCV中的GUI特性之图片和视频的读写和显示,包括图像的cv.imread / imshow / imwrite和Vi ...

  4. Opencv笔记(五)——把鼠标当画笔

    学习目标:  学习使用 OpenCV 处理鼠标事件 学会使用函数cv2.setMouseCallback() 简单演示:         首先我们来创建一个鼠标事件回调函数,但鼠标事件发生是他就会被执 ...

  5. OpenCV 中的绘制功能

    本文主要内容来自于 OpenCV-Python 教程 的 OpenCV 中的 GUI 功能 部分,这个部分的主要内容如下: 图像操作入门 学习加载一幅图像,显示它,并保存它 视频入门 学习播放视频,从 ...

  6. opencv04:鼠标作为画笔以及轨迹栏作为调色板

    目标 了解如何在OpenCV中处理鼠标事件 cv2.setMouseCallback() 了解将轨迹栏固定到OpenCV窗口 cv2.getTrackbarPos() cv2.createTrackb ...

  7. OpenCV_005-OpenCV 鼠标作为画笔

    本文主要内容来自于 OpenCV-Python 教程 的 OpenCV 中的 GUI 功能 部分,这个部分的主要内容如下: 图像操作入门 学习加载一幅图像,显示它,并保存它 视频入门 学习播放视频,从 ...

  8. OpenCV中鼠标交互-绘制矩形框

    OpenCV中鼠标交互-绘制矩形框 ·具体流程: 1.绑定回调函数 2.在回调函数中检测触发的事件 3.根据不同事件做出不同动作 一.绑定回调函数 cv2.setMouseCallback('orig ...

  9. OpenCV-Python实战(番外篇)——OpenCV中利用鼠标事件动态绘制图形

    OpenCV-Python实战(番外篇)--OpenCV中利用鼠标事件动态绘制图形 使用鼠标事件动态绘制 动态绘制图形 动态绘制图形和文本 相关链接 使用鼠标事件动态绘制 我们已经在<OpenC ...

最新文章

  1. 比特币现金生态:SLP开发人员发布新规则
  2. 巧用watch命令执行循环操作,来解放我们的双手
  3. 委托、事件的个人理解
  4. C语言项目:推箱子大战
  5. linux系统中使用pycharn,在pycharm中使用linux控制台
  6. C#算法设计排序篇之04-选择排序(附带动画演示程序)
  7. 内存或磁盘空间不足 excel无法再次打开_Mac系统中检测和清理磁盘空间的几个工具...
  8. Windows中MySQL主从数据库搭建(三)
  9. 契约测试工具的思考(一)
  10. windows系统PrintScreen键截屏
  11. VM技术(一)NES模拟器VM综述
  12. ybc_xxx类模块应用1-ybc_speech(第一片)
  13. 程序员为什么要学习数据库
  14. 第一节:(2)逻辑芯片工艺特性指标
  15. 虎年屠虎:巨亏下的IPO,你也太虎了吧
  16. 时间戳转换为日期格式(天,小时,分,秒)
  17. 10分钟部署一个别人可以访问的在线网站
  18. 这可能是你见过的最全的SaaS行业分析
  19. Java打板_AI 打板模型原理与实践
  20. 使用face++接口实现人脸相似度比对

热门文章

  1. 谈谈module.exports对象和exports对象
  2. 计算机应用实践教学体系,高职计算机应用技术专业实践教学体系构建-2019年精选文档...
  3. OPPO哲库事件 “ 始末 ” ! 集体打哑谜?
  4. 雷军:你尽管天天骂我,但在你最需要的时候还是我拿出了830万!
  5. python生成exe,pyinstaller编码错误或闪退,果断换坑cxfreeze!
  6. NFT 的基础知识:区块链上的数字艺术和收藏品
  7. android 发短信意图,android代码实现打电话和发送短信功能
  8. mysql中格式化日期函数_mysql日期格式化函数
  9. 关于android系统获取iccid的问题
  10. Scrutiny 9 for Mac(Web优化工具)