2 opencv的原理和开发思想

1 原理

1.1 通过userId新建档案

- 上传1-N张人脸数据
- 截取图片中的人脸(部分图片),转为灰度,并保存
- 通过OpenCV训练模型,生成yam训练文件

1.2 人脸对比

- 截取图片中的人脸(部分图片),转为灰度
- 根据训练文件进行人脸对比,如果大于80,则保存头像,并重新训练
- 返回数据结果

2 公共模块

2.1 config.py 配置文件

	import sys

	# 训练完的yam文件存储的路径
	__trainer__path = sys.path[2] + '/face_trainer'
	
	# 人脸档案根据userId存储的文件夹
	__FaceStore__path = sys.path[2] + '/faceStore'
	
	# 网络下载的人脸图片保存到临时文件夹
	__NetCache__path = sys.path[2] + '/cache'

2.2 WosDownload.pyy

import config #配置文件
import os
import datetime
import requests
import time
import random


# 下载图片
# URI 下载地址或下载地址的list
# 返回下载到本地的地址列表,未下载的返回是false

def main(URI):

    # 参数校正
    images = []
    if URI == '':
        print("ERR: URI is null", URI)
        return False
        
    # 判断是否上传的地址数组
    if not isinstance(URI, list):
        images.append(URI)
    else:
        images = URI

    # 查看下载临时资源是否创建
    date = datetime.date.today()
    path = config.__NetCache__path + '/' + str(date.year) + '/' + str(date.month) + '/' + str(date.day)
    isExists = os.path.exists(path)
    if not isExists:
        os.makedirs(path)  # 创建

    # 下载
    downloadStatus = []
    for image in images:

        # 生成本地文件地址,判断文件是否存在
        suffix = image.split(".")  # 后缀
        while True:
            filename = str(int(time.time())) + '-' + str(random.randint(10000, 99999)) + '.' + suffix[len(suffix) - 1]
            filePath = path + '/' + filename
            # 判断文件是否存在
            if not os.path.exists(filePath):
                break

        # 下载
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (HTML, like Gecko) '
                          'Chrome/84.0.4147.105 Safari/537.36 '
        }
        r = requests.get(image, headers=headers, stream=True)

        # print(r.status_code) # 返回状态码
        if r.status_code == 200:
            # 截取图片文件名
            open(filePath, 'wb').write(r.content)
            downloadStatus.append(filePath)
        else:
            downloadStatus.append(False)

    return downloadStatus
    

专栏文章目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wos.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值