文档章节

Python OpenCV学习笔记之:处理鼠标事件

IOTService
 IOTService
发布于 2016/12/05 19:44
字数 182
阅读 20
收藏 1
# -*- coding: utf-8 -*-
# 处理鼠标事件

import cv2 as cv
import numpy as np
img = np.zeros((512,512,3),np.uint8)
ix,iy = -1,-1
drawing = False
mode = True

# 鼠标回调函数
def on_mouse_action(event,x,y,flags,param):
    global ix,iy,drawing,mode
    if event == cv.EVENT_LBUTTONDOWN: # 鼠标左键按下
        drawing = True
        ix,iy = x,y
    elif event == cv.EVENT_LBUTTONDBLCLK: # 鼠标左键双击
        cv.circle(img,(x,y),100,(255,0,0),-1)

    elif event == cv.EVENT_MOUSEMOVE: #鼠标移动
        if drawing == True:
            if mode == True:
                cv.rectangle(img,(ix,iy),(x,y),(0,255,0),-1)
            else:
                cv.circle(img,(x,y),5,(0,0,255),-1)
    elif event == cv.EVENT_LBUTTONUP:
        drawing = False
        if mode == True:
            cv.rectangle(img,(ix,iy),(x,y),(0,255,0),-1)
        else:
            cv.circle(img,(x,y),5,(0,0,255),-1)


cv.namedWindow("image")
cv.setMouseCallback("image",on_mouse_action)

while True:
    cv.imshow("image",img)
    k = cv.waitKey(20) & 0xFF
    if k == ord('m'):
        mode = not mode
    elif k == 27:
        break

cv.destroyAllWindows()

© 著作权归作者所有

共有 人打赏支持
IOTService
粉丝 16
博文 146
码字总数 32874
作品 0
广州
程序员
基于OpenCV和Python的文件操作——捕获摄像头的帧,在窗口显示图像,在窗口显示摄像头帧和视频文件的读/写

0 写在前面 这篇博客主要参考资料为《OpenCV 3计算机视觉Python语言实现》(Learning OpenCV 3 Computer Vison with Python)。 因为之前用Faster R-CNN做过一个红绿灯检测的小实践,但是Git...

learning_tortosie
04/12
0
0
python3 安装opencv

1.在http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 找到对应opencv以及python版本,下载 比如我python 3.5,opencv 3.3.0,电脑64位,选择下载 opencvpython‑3.3.0‑cp35‑cp35m‑win_a......

vincehxb
2017/09/30
0
0
OpenCV-Python(1)在Python中使用OpenCV进行人脸检测

OpenCV是如今最流行的计算机视觉库,而我们今天就是要学习如何安装使用OpenCV,以及如何去访问我们的摄像头。然后我们一起来看看写一个人脸检测程序是如何地简单,简单到只需要几行代码。 在...

煎鱼不可能有BUG
05/23
0
0
在Python中使用OpenCV进行人脸检测

OpenCV是如今最流行的计算机视觉库,而我们今天就是要学习如何安装使用OpenCV,以及如何去访问我们的摄像头。然后我们一起来看看写一个人脸检测程序是如何地简单,简单到只需要几行代码。 在...

煎鱼不可能有BUG
05/17
0
0
Python3与OpenCV3.3 图像处理(一)--环境搭建与简单DEMO

一、所需软件 本教程需要一下软件: PyCharm 2017.2.3 (其他版本也可) OpenCV 3.3 Python 3 Windows 7以上版本 二、环境配置 Python3 和 PyCharm的安装这里就不详述的,只需到对应的官方网...

朱刚
08/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JVM垃圾回收算法

1、新生代与老年代 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ) 和 老年代 ( Old )。 新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor 和 To Survivor。 Java 中的堆...

初雪之音
9分钟前
0
0
主流的消息队列MQ比较,详解MQ的4类应用场景

目前主流的MQ 1.ZeroMQ 号称最快的消息队列系统,尤其针对大吞吐量的需求场景。 扩展性好,开发比较灵活,采用C语言实现,实际上只是一个socket库的重新封装,如果做为消息队列使用,需要开发...

游人未归
今天
3
0
React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
今天
4
0
Jenkins使用

clean install -Dmaven.test.skip=true 系统设置 全局工具配置 其他的配置类似 构建项目配置

1713716445
今天
2
0
多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部