写在前面--碎碎念
上次更新了一篇关于如何使用python自带的tkinter库实现人脸识别的界面,大致介绍了我们想达到的设计目标和tkinter库的基础知识。在这个小程序中,涉及到了摄像头调用(包括截图、存图、图片大小修改)、后台机器学习模型调用两个核心功能,还有tkinter界面的布局、美化、显示图片和模型预测结果等展示效果。
声明
由于整体实现需要深度学习网络的调用,这里不对深度学习人脸识别的具体实现进行展现解释。而且是小伙伴的项目,也涉及到他人的科研成果,所以只借用这个项目的形式针对界面部分进行详细说明,还请理解。不会提供包括深度学习模型实现在内的完整代码,伸手党请绕道。
一、初始化
1、模块导入
# -*- coding: utf-8 -*-
#代码默认python2版本,python3有出入的地方在注释中
from Tkinter import * # from tkinter import *导入tkinter库
import tkFileDialog # from tkinter import filedialog 调用文件读取弹窗模块,实现用户可以选择本地图片作为输入
from PIL import Image, ImageTk #调用图片处理模块,保证png后缀名可用
import cv2 #导入OpenCV库
import threading #多线程调用,从视频流中获取新的帧
import datetime #为保存的截图文件获取一个易读的时间相关名称
import os #调用系统命令
import caffe #导入caffe,深度学习框架调用
import filter #图片处理
import scipy.misc #以图像形式保存数组
import numpy as np #数组运算
import re #正则表达式匹配操作
import linecache #把文件读入到缓存中,在以后访问文件的时候,就不必要再从硬盘读取
2、变量定义
#全局变量
filename = "" #初始文件名
synname = "" #添加扰动后的合成文件名
flag = int(0)
var3 = ""
3、网络初始化
根据调用网络,进行初始化操作:略
这个对深度学习有研究的同学来说应该不是问题~~
二、界面模块与内部功能对应关系
人脸识别演示界面与功能对应.png
三、界面设置
if __name__ == '__main__':
root = Tk()
frame = Frame(root,bg='#3b3a4a')#设置背景颜色
frame.pack(expand=YES,fill=BOTH,anchor='n')#背景颜色填充整个窗口
root.title("人脸识别演示")#设置窗口标题
root.geometry("800x600")#注意中间是小写x
root.iconbitmap('muma.ico')#设置窗口标题栏小logo,注意需要是ico格式
#选择图