python-OpenCV调用摄像头及定义鼠标事件

主要函数

1.

cv2.SetMouseCallback(window_name, on_mouse, param);

参数解释:

window_name窗口名称
on_mouse鼠标消息的消息处理函数
param参数表示用户定义传入鼠标指定消息处理函数的参数

2.

cv2.cameraCapture = cv.VideoCapture(0)

注:VideoCapture()的参数0表示电脑所连接的第一个摄像头,以此类推。参数也可为文件路径,可直接读取本地视频。

3.

cv2.cameraCapture.read()

该函数按帧读取视频,返回两个值,分别为1.布尔值:读取成功则返回true。2.当前帧

代码示例

import cv2 as cv

clicked = False

# 定义鼠标事件的响应函数
def onMouse(event, x, y, flags, param):
    # x,y为鼠标位置的x,y坐标,flags为是否点击,是为1,否为0
    global clicked
    if event == cv.EVENT_LBUTTONUP:
        clicked = True
# 如果点击窗口,则打印鼠标点击的相对坐标
        print(x, y, flags, param)


# cv.VideoCapture(0)中0表示读取的是电脑连接的第一个摄像头
cameraCapture = cv.VideoCapture(0)
cv.namedWindow('MyWindow')
# 创建窗口,调用已定义的函数
cv.setMouseCallback('MyWindow', onMouse)  

print('Showing camera feed.click window or press any key to stop')

# cameraCapture.read()按帧读取视频,success为布尔值,读取成功则返回true。frame为当前读取的帧
success, frame = cameraCapture.read()
while success and cv.waitKey(1) == -1 and not clicked:
    frame = cv.flip(frame, 1)  # 将画面左右对调
    cv.imshow('MyWindow', frame)
    success, frame = cameraCapture.read()

cv.destroyWindow('MyWindow')
# 释放摄像头
cameraCapture.release()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值