◆ 学习日报 ◆
• 今日学习内容
今天是实习的第二天,老师今天开始教我们如何编写人脸识别签到这个项目的代码。在昨天的时候,我们用pyqt5制作了窗口的样式,有签到的目录按键——启动签到、关闭签到,摄像头画面,日期时间和人物资料区。
今天主要是对摄像头显示进行实现。首先要创建摄像头的操作类,这个类负责完成摄像头的采集功能。当我们需要摄像头完成一个功能的时候,我们只需要去调用对象的一个函数去完成。然后是创建一个摄像头类,这个类包括的功能有添加、打开摄像头、获取实时数据、数据转换并提供给界面。再就是创建界面类,这个类主要是为了实现添加和显示画面到界面的功能。
在此基础上,由于画面显示需要循环一直显示,所以我们就需要一个定时器,规定的时间一到就产生信号,并且关联上一个槽函数,信号调用的时候就主动调用槽函数。
今天还学到了一个新的函数——槽函数。这是QT中存在的一个机制——信号槽机制,信号可以去关联另一个函数,这个函数会在山城对应信号的时候被调用。今天的代码很多都用到了这个函数。
• 摄像头显示
-
创建摄像头操作类
- 完成摄像头的采集功能
- 当需要摄像头完成一个功能时,就调用摄像头对象的一个函数去完成
- 完成摄像头的采集功能
-
实现一个摄像头类
- 添加
- 打开摄像头
- 获取摄像头的实时数据
- 数据进行转换提供给界面
-
界面类
- 添加
- 显示画面到界面中
• 自我反思
今天上午在课程快要结束时,老师让我们运行一下程序,正常情况下,我们自己制作的窗口界面会打开,然后点击开启签到就会打开摄像头,并会显示实时摄像头画面。但是我打开之后发现只要点击开启签到我的程序就会卡住,摄像头也没打开,然后就自己关闭了。问了老师,说是没有读取到数据的原因。下午的时候,老师专门就这个问题讲了一下,然后我在此过程中学到了如何一步一步地调试程序,从而一点一点排查程序错误,虽然最后发现是我代码中有个单词的字母出了错,a打成了e。所以说编写代码的时候一定要仔细一点,一个小小的错误就能导致整个程序出错,而且还不好发现。