基于学生课堂管理签到的AI人脸识别系统(二)


上一篇文章中,我们设计了一个简单的界面,并且通过Python将其运行了出来,这一次我们将调用摄像头将摄像头获取的图像投放到窗口中

1、新建执行py文件

新建一个main.py文件,将显示界面的程序放入到此Python文件中
然后便可以将mywindow.py中的显示界面的内容删除
main.py中代码如下

from PyQt5.QtWidgets import QMainWindow, QApplication
import sys
from mywindow import mywindow

'''
程序的解释执行文件
'''
if __name__ == '__main__':
    # 创建应用程序对象
    app = QApplication(sys.argv)
    # 创建窗口
    ui = mywindow()
    # 显示窗口
    ui.show()
    # 应用程序执行
    app.exec_()
    sys.exit(0)

2、摄像头显示

1).创建摄像头操作类

创建一个新的cameravide.py文件,作为摄像头的操作类,用来进行摄像头的采集功能,通过界面中的按钮,当需要摄像头采集的时候就调用对象的函数完成
在这里插入图片描述在这里插入图片描述

2).实现一个摄像头类

主要功能:添加,打开摄像头,获取摄像头的实时数据,数据进行转换提供给界面
在该类中,需要一个摄像头的类,Python中自带的函数用于调用摄像头并打开摄像头,通过OpenCV的一些函数调用电脑的摄像头;自定义一个函数读取摄像头的数据;定义一个函数将摄像头读取的数据转换,转换为界面能够显示的数据格式,因为摄像头是以BGR方式存储的,所以首先需要转换为RGB格式,调用cvtColor完成后才是RGB格式的画面数据;最后定义一个函数将摄像头关闭
1.__init__函数,完成摄像头的配置打开

def __init__(self):
        # VideoCapture类对视频或调用摄像头进行读取操作
        # 参数 filename(视频文件);device(摄像头编号)
        # 0 表示默认摄像头打开
        # 创建摄像头操作对象,打开摄像头
        # self.capture表示打开的摄像头对象
        self.capture = cv2.VideoCapture(0, cv2.CAP_DSHOW)
        # isOpened()函数返回一个布尔值,判断是否摄像头初始化成功
        if self.capture.isOpened():
            print("isOpened")
        # 定义一个多维数组,用来存储获取的画面数据
        self.currentframe = np.array([])

2.read_camera函数,读取摄像头数据

 def read_camera(self):
        ret, pic_data = self.capture.read()
        if not ret:
            print("获取摄像头失败")
            return None
        return pic_data

3.camera_to_pic函数,把数据转换成界面能显示的数据格式

    def camera_to_pic(self):
        pic = self.read_camera()
        # 摄像头是以BGR方式存储,首先需要转换为RGB
        # 调用cvtColor完成后才是RGB格式的画面数据
        self.currentframe = cv2.cvtColor(pic
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值