## 调用系统opencv人脸识别标准库的接口 * 视频教程 [树莓派+python自美系统教程17opencv实现人脸打卡签到-1](https://www.bilibili.com/video/av66666082/?p=19) [树莓派+python自美系统教程18opencv实现人脸打卡签到-2](https://www.bilibili.com/video/av66666082/?p=20) [树莓派+python自美系统教程19opencv实现人脸打卡签到-3](https://www.bilibili.com/video/av66666082/?p=21) * 插件导入 ``` from package.include.opencv import Opencv #导入人脸离线识别库 from package.base import Base,log from plugin import Plugin import os class Opencvs_演示调用(Plugin,Base): def __init__( self, public_obj ): self.public_obj = public_obj #初始化人脸识别类对象 self.opencv = Opencv() #初始化人脸识别成功方法 self.opencv.success = self.success #和下面的函数同名 #在自己的这个类里面重写opencv类函数 success 如下 #识别结束自动回调这个函数得到结果(False/True) def success(self,enobj): print(enobj) self.opencv close() #该方法等于开始的strat里的retuen 结果 self.public_obj.master_conn.send({'optype': 'return','type': 'system','state': True,'msg': '备注自定义','data':"你需要前端显示和合成播放的文字"} ) return True #启动入口 def start(self,enobj): #启动人脸识别 self.opencv.main_video( 看下面的参数说明 ) ''' 开始拍照抓取 temp_file: # 临时保存图片位置和名称 fier_file = [{ # 模型参数[列表]-支持多模型 'file': # 模型xml 'scaleFactor': 1.2 # 多少倍 'minNeighbors': 5 # 对比多少次 'minSize': (40,40) # 最小检测窗口 (40, 40) }], window = { # 窗口参数{字典} - 有参数显示,无参不显示(默认) 'name':' ', # 窗口名称,(默认为空格) 'size':(640,480), # 窗口大小, (宽,高) / -1 全屏(默认) 'is_focus':(300,300), # 是否显示窗口聚焦框, (宽,高) 有参数-显示 / 无参-不显示(默认) 'is_capture': 0 # 是否显示捕捉框 1 - 显示 / 0 -不显示(默认) }, save = { # 保存参数{字典} 'type': 1, # 保存图片区域: 1 - 全窗口(默认), 2 - 聚焦框部分, 3 - 捕捉框部分 如果设置显示聚焦窗口默认值为: 2 -- 即保存聚焦框部分 如果设置捕捉框默认值为: 3 -- 即保存捕捉框部分 'color': 0 # 保存为彩色或黑白:1 - 彩色 / 0 - 黑白(默认) }, camera_angle = 0, # 摄像头方向 -1 0(默认) 1 2 thre = 0.5 # 阈值,取值:0 ~ 1,数值越大处理越耗时(默认0.5),如果定义显示聚焦框默认值为:1 ```