如何在Python的Opencv Cam窗口中提供开始,停止,捕获和关闭按钮 [英] How to give Start, stop, capture and close buttons in Opencv Cam window in Python

查看:466
本文介绍了如何在Python的Opencv Cam窗口中提供开始,停止,捕获和关闭按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在视频捕获窗口中使用开始",停止",捕获"和关闭"按钮来启动,停止,拍摄快照和关闭窗口?

How to give start, stop, capture, and close buttons in video capture window to start, to stop, to take snapshot, to close the window?

我正在使用以下代码打开摄像机进行视频流传输:

I am using the below code to to open camera for video streaming:

import cv2.cv as cv
    cv.NamedWindow("camera", 1)
    capture = cv.CaptureFromCAM(0)
    while True:
        img = cv.QueryFrame(capture)
        cv.ShowImage("camera", img)
        if cv.WaitKey(10) == 27:
            break

推荐答案

无法使用按钮,但是您可以使用鼠标单击和按键来控制视频.例如,使用鼠标左键切换播放/暂停并通过击键实现记录:

Buttons aren't possible but you can use mouse clicks and key strokes to control your video. For example, use left click to toggle play/pause and implement record via key stroke:

import cv2

run=False
frame=0
path=#some video path

def foo(event, x, y, flags, param):
    global run
    global frame
    #check which mouse button was pressed
    #e.g. play video on left mouse click
    if event == cv2.EVENT_LBUTTONDOWN:
        run= not run
        while run:

            frame+=1
            frame=cap.read()[1]
            cv2.imshow(window_name, frame)
            key = cv2.waitKey(5) & 0xFF
            if key == ord("v"):
                pass
                #do some stuff on key press

    elif event == cv2.EVENT_RBUTTONDOWN:
        pass
        #do some other stuff on right click


window_name='videoPlayer'
cv2.namedWindow(window_name)
cv2.setMouseCallback(window_name, foo)

cap=cv2.VideoCapture(path)

这篇关于如何在Python的Opencv Cam窗口中提供开始,停止,捕获和关闭按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆