Opencv处理鼠标事件-OpenCV步步精深
在图片上双击过的位置绘制一个 圆圈
鼠标事件就是和鼠标有关的,比如左键按下,左键松开,右键按下,右键松开,双击右键等等。
我们可以通过鼠标事件获得与鼠标对应的图片上的坐标。我们通过以下函数来调用查看所有鼠标事件。
- events=[i for i in dir(cv2) if 'EVENT'in i]
- print events

- 所有的鼠标事件
我们来是这写一下这个函数,第一步还是调用库
- import cv2
- import numpy as np
调用鼠标回调函数
- def draw_circle(event,x,y,flags,param):
这个函数有5个参数:鼠标事件名称,坐标是双击时鼠标的位置,我没看懂flags,param是啥意思,不敢误人子弟。(希望有心人教教我)
- if event==cv2.EVENT_LBUTTONDBLCLK:
如果这个事件是左键双击事件
- cv2.circle(img,(x,y),100,(255,0,0),-1)
那么画一个圆,昨天说过有关cv2.circle的参数,今天不再赘述。
- img=np.zeros((512,512,3),np.uint8)
这是创造一个空的黑色环境,昨天也讲过,记的复习哦!
- cv2.namedWindow('shuhangjihuayuan')
命名窗口为shuangjihuayuan
- cv2.setMouseCallback('shuangjihuayuan',draw_circle)
(创建图像与窗口并将窗口)与回调函数绑定
然后就是显示出来就好啦
- while(1):
- cv2.imshow('shuangjihuayuan',img)
- if cv2.waitKey(20)&0xFF==27:
- break
然后销毁窗口
- cv2.destroyAllWindows()

- 运行结果
所有代码来啦
# -*- coding:utf-8 -*-
"""
Created on Sun Dec 31 05:07:11 2016
@author: Y
"""
import cv2
import numpy as np
def draw_circle(event,x,y,flags,param):
if event==cv2.EVENT_LBUTTONDBLCLK:
cv2.circle(img,(x,y),100,(255,0,0),-1)
img=np.zeros((512,512,3),np.uint8)
cv2.namedWindow('shuangjihuayuan')
cv2.setMouseCallback('shuangjihuayuan',draw_circle)
while(1):
cv2.imshow('shuangjihuayuan',img)
if cv2.waitKey(20)&0xFF==27:
break
cv2.destroyAllWindows()
天色朦朦亮,早起做运动啦!那条禁忌之路,充斥了太多人性的弱点,我本不该踏进一步 。 既然选择了,那就义无反顾的走下去吧,青春不执著,以后又该如何呢?加油,兄弟姐妹们!我是Y,欢迎大家在下面留言!
Opencv处理鼠标事件-OpenCV步步精深的更多相关文章
- Opencv稍微高级点的鼠标事件-OpenCV步步精深
今天我们要来点稍微高级的东西.在我们按下鼠标时可以画矩形,而我们按下键盘m键时,切换到画圆的模式,再按下m键,回到画矩形模式. 一起来写下代码,首先当然还是调用库 import cv2 import ...
- [opencv]调用鼠标事件执行grabcut算法实现阈值分割
#include<iostream> #include <opencv2/opencv.hpp> #include <math.h> using namespace ...
- Opencv函数setMouseCallback鼠标事件响应
用户通过鼠标对图像视窗最常见的操作有: 1. 左键单击按下 2. 左键单击抬起 3. 左键按下拖动 4. 鼠标指针位置移动 单次单击操作响应事件及顺序 Opencv中setMouseCallback( ...
- opencv鼠标事件
#include <opencv2\opencv.hpp> using namespace cv; struct mouse_para { cv::Mat org; cv::Mat img ...
- opencv入门系列教学(四)处理鼠标事件
一.鼠标事件的简单演示 opencv中的鼠标事件,值得是任何与鼠标相关的任何事物,例如左键按下,左键按下,左键双击等.我们先来看看鼠标事件有哪些,在python中执行下面代码: import cv2 ...
- Opencv step by step - 鼠标事件
鼠标事件有下面几种(没有滚轮事件,比较遗憾): #define CV_EVENT_MOUSEMOVE 0 滑动 #define CV_EVENT_LBUTTONDOWN 1 左键点击 #define ...
- Opencv下图像对鼠标事件的响应
直接上代码: //////////////////////////////////////////////////////////////////////// // // 该程序从文件中读入一幅图像, ...
- 如何用OpenCV跟踪鼠标操作
转载:如何用OpenCV跟踪鼠标操作 http://blog.skyoung.org/2014/05/01/how-to-track-mouse/ 在视频第一帧手动标记出目标的位置是在线视觉跟踪中最基 ...
- opencv对鼠标的响应
#include <cv.h> #include <highgui.h> #include <stdio.h> #pragma comment(lib,&quo ...
随机推荐
- 使用github出了些问题?fatal: unable to access;Failed connect to github.com:8087;
使用github出了些问题?fatal: unable to access;Failed connect to github.com:8087; No error 我今天使用git push orig ...
- 团队作业8——第二次项目冲刺(Beta阶段)--第六天
一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 学号 成员 贡献比 201421123001 廖婷婷 16% 201421123002 翁珊 16% 201421123004 ...
- 201521123062《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 Q1.clone方法 1.1 Object ...
- 201521123069 《Java程序设计》 第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- [转载]sqlserver、Mysql、Oracle三种数据库的优缺点总结
一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能.与许多其他服务器软件紧密关联的集成性.良好的性价比等:为数据管理与分析带来了灵活性,允许单位在快速变化的环境中 ...
- ArrayList和LinkedList区别及性能测试
ArrayList和LinkedList是Java Lis接口的2个实现.它们的区别如下表所示: 底层结构 强项 弱项 ArrayList 数组 随机访问get和set 插入删除 LinkedList ...
- JS运算符的一些简单练习和应用
练习-01 判断奇数偶数 var num =prompt("请输入一个数"); al ...
- Python 的笔试题
其实大多数说学习Python 是纯兴趣,真的我不信,许多人已经工作了,没有那么多时间搞自己的纯兴趣了,都会为了生活奋斗,可以说转行来学python 就是未来加薪,当然,小编现在也快要准备工作了,所以也 ...
- POJ--3172 Scales (DFS 大容量背包 C++)
Scales Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3148 Accepted: 851 Description ...
- Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】
配置文件和映射文件再解读 映射文件 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理 ...