栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python知识:openCV实现鼠标事件捕获

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python知识:openCV实现鼠标事件捕获

以下,用opencv实现简单画板程序,来说明鼠标事件捕获:

1 函数说明:

1)函数cv2.setMouseCallback('image',MyCallBack)

指定对“image”窗口绑定事件处理的回调程序是MyCallBack;

2)MyCallBack回调程序的格式是

def MyCallBack(event,x,y,flags,param):

event:是输入事件号

x,y:是鼠标所在位置。

param:是带入参数,一般是个结构的指针,或句柄。

2 程序代码
# -*- coding: utf-8 -*-
import cv2
import numpy as np 

#mouse callback function
state = False
def MyCallBack(event,x,y,flags,param):
    global state
    if event == cv2.EVENT_LBUTTONDOWN:
        state = True
    elif event == cv2.EVENT_LBUTTONUP:
        state = False
    if event == cv2.EVENT_MOUSEMOVE:
        if state == True:
            cv2.circle(img,(x,y),2,(255,126,0),-1)
def clear():
    global img
    img[:,:,-1]  = 0

#创建图像与窗口并将窗口与回调函数绑定
img=np.zeros((740,1400,3),np.uint8)
cv2.namedWindow('image')
cv2.setMouseCallback('image',MyCallBack)

while(1):
    cv2.imshow('image',img)
    k = cv2.waitKey(1) & 0xFF
    if k == 32:
        img[:] = 0
    elif k == 27:
        break

cv2.destroyAllWindows()
3 结果

可以实现绘图程序。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/725915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号