将摄像头数据显示在窗口中并具有录像、截屏功能

复习

先前写过两个读取摄像头数据的小Demo复习内容:
OpenCV获取摄像头数据并显示在窗口里 Python实现
从摄像头中读取数据并写入文件

Cameo

这次是一个功能更加强大的Demo不仅仅是将摄像头获取的视频数据显示在窗口中,而且还可以通过快捷键来实现截屏、保存视频数据。
首先我们先来看看Cameo的主程序:

# -- coding: utf-8 --

import cv2
import os

from managers import WindowManager, CaptureManager

class Cameo(object):
    def __init__(self):
        '''创建一个窗口,写上按键的回调方法'''
        self._windowManager = WindowManager('Cameo', self.onKeypress)

        '''告诉程序数据来自摄像头, 还有镜面效果'''
        self._captureManager = CaptureManager(cv2.VideoCapture(0), self._windowManager, True)


    def run(self):
        """Run the main loop."""
        self._windowManager.createWindow()
        while self._windowManager.isWindowCreated:
            '''这里的enterFrame就是告诉程序从摄像头中取数据'''
            self._captureManager.enterFrame()

            '''下面的这个frame是原始帧数据,这里没有做任何修改,后面的教程会对这个帧数据进行修改'''
            frame = self._captureManager._frame
            '''exitFrame看起来是像是退出的意思,其实主要功能都是在这里方法里实现的,截屏、录像都是在这里'''
            self._captureManager.exitFrame()
            self._windowManager.processEvents()

    def onKeypress(self, keycode):
        '''
        快捷键设置:
        当按下“空格”键的时候,会进行抓屏。
        当按下‘tab’键的时候,就开始或者停止录像。
        当然相应的目录也会生成图片或者视频文件
        '''

        if keycode == 32:#space
            '''告诉程序,截屏保存的文件名字'''
            self._captureMan
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值