import sys  
import ssl  
from urllib import request,parse  
 
# client_id 为官网获取的AK, client_secret 为官网获取的SK  
#获取token  
def get_token():  
    client_id =API Key
    client_secret =Secret Key
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(client_id,client_secret)  
    req = request.Request(host)  
    req.add_header('Content-Type', 'application/json; charset=UTF-8')  
    response = request.urlopen(req)  
    #获得请求结果  
    content = response.read()  
    #结果转化为字符  
    content = bytes.decode(content)  
    #转化为字典  
    content = eval(content[:-1])  
    return content['access_token']  
 
 
#转换图片  
#读取文件内容,转换为base64编码  
#二进制方式打开图文件  
def imgdata(file1path,file2path):  
    import base64  
    f=open(r'%s' % file1path,'rb')   
    pic1=base64.b64encode(f.read())   
    f.close()  
    f=open(r'%s' % file2path,'rb')   
    pic2=base64.b64encode(f.read())  
    f.close()  
    #将图片信息格式化为可提交信息,这里需要注意str参数设置  
    params = {"images":str(pic1,'utf-8') + ',' + str(pic2,'utf-8')}  
    return params  
 
#提交进行对比获得结果  
def img(file1path,file2path):  
    token = get_token()  
    #人脸识别API  
    #url = 'https://aip.baidubce.com/rest/2.0/face/v2/detect?access_token='+token  
    #人脸对比API  
    url = 'https://aip.baidubce.com/rest/2.0/face/v2/match?access_token='+token  
    params = imgdata(file1path,file2path)  
    #urlencode处理需提交的数据  
    data = parse.urlencode(params).encode('utf-8')  
    req = request.Request(url,data=data)  
    req.add_header('Content-Type', 'application/x-www-form-urlencoded')  
    response = request.urlopen(req)  
    content = response.read()  
    content = bytes.decode(content)  
    content = eval(content)
    print(content)
    #获得分数  
    score = content['result'][0]['score']  
    if score>80:  
        return '照片相似度:'+str(score)+',同一个人'  
    else:  
        return '照片相似度:'+str(score)+',不是同一个人'  
 
if __name__ == '__main__':  
    file1path = 'd:/ym1.jpg'  
    file2path = 'd:/ym2.jpg'  
    res = img(file1path,file2path)  
    print(res)

python人脸对比的更多相关文章

  1. 基于node.js人脸识别之人脸对比

    基于node.js人脸识别之人脸对比 Node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O ...

  2. python编辑器对比和推荐

    python编辑器对比和推荐   我先给一个初步的表格吧,大家如果有什么意见,或有补充,欢迎提出.有些我没有用过,先不写了.以下是我使用过的python IDE: 除了PythonWin, Visua ...

  3. python性能对比

    python性能对比之items #1 #-*- coding:utf8-*- import datetime road_nodes = {} for i in range(5000000): roa ...

  4. 关于dlib人脸对比,人脸识别

    人脸检测 人脸特征点提取 人脸对比,等于两张人脸对比,识别 封装的所有识别函数,直接看下面调用就好了. # coding:utf-8 ''' 本本次封装,我主要是做两张人脸对比. 就只人脸识别部分,简 ...

  5. python3 百度AI-v3之 人脸对比 & 人脸检测 & 在线活体检测 接口

    #!/usr/bin/python3 # 百度人脸对比 & 人脸检测api-v3 import sys, tkinter.messagebox, ast import ssl, json,re ...

  6. python人脸识别

    需要掌握知识python,opencv和机器学习一类的基础 过一段时间代码上传github,本人菜j一个,虽然是我自己谢的,也有好多不懂,或者我这就是错误方向 链接:https://pan.baidu ...

  7. 【python人脸识别】使用opencv识别图片中的人脸

    概述: OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库 为什么有OpenCV? 计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种: 1.研究 ...

  8. ruby和Python简单对比

    前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果   序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时 ...

  9. OpenCV + Python 人脸检测

    必备知识 Haar-like opencv api 读取图片 灰度转换 画图 显示图像 获取人脸识别训练数据 探测人脸 处理人脸探测的结果 实例 图片素材 人脸检测代码 人脸检测结果 总结 下午的时候 ...

随机推荐

  1. Linux内核5.6亮点

    导读 当我们还在体验 Linux 5.5 稳定发行版带来更好的硬件支持时,Linux 5.6 已经来了.我将在本文中重点介绍 Linux 5.6 发布版中值得期待的关键更改和功能. 说实话,Linux ...

  2. java编译器不匹配问题(java compiler level does not match the version of the installed java project facet)

    问题:项目经常copy过来,经常会报说Java编译器不匹配 解决方法:找到项目所在的目录,在.settings子目录里面,用文本编辑器打开org.eclipse.wst.common.project. ...

  3. 【PAT甲级】1091 Acute Stroke (30 分)(BFS)

    题意: 输入四个正整数M,N,K,T(K<=60,M<=1286,N<=128),代表每片的高度和宽度,片数和最小联通块大小.输出一共有多少个单元满足所在联通块大小大于等于T. tr ...

  4. 使用PIE.htc 进行IE兼容CSS3

    步骤: 1.引入文件.注意PIE.htc文件和css文件要放在同一个目录下: 2.在css元素中加上  behavior:url(pie.htc); 3.可以愉快的写css hack啦 ,这时需要的圆 ...

  5. 初探three.js几何体-Geometry

    three.js几何体我们还没有说完,这一节我们说一说THREE.Geometry(),简单几何体都是继承了这个对象,使用它会相对麻烦一些,但是可操作性非常高,今天我们使用它制作一个自定义几何体-五角 ...

  6. RS232与RS485

    1.RS232实物图与引脚图? 2.RS485实物图与引脚图?

  7. python 环境迁移之requirements.txt (window环境)

    一.背景 1.有时候你本地用python编写代码,然后本地也安装了很多的库,那么你要迁移到服务器上,那么该怎么快速弄环境库呢?           #第二,三步就可以解决. 2.有时候你本地用pyth ...

  8. 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里

    这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...

  9. 堆(c++)

    5分钟速成堆 FBI⚠WARNING 本文要素过多 吐槽 堆是我迄今为止学过最简单的数据结构 我还没学会最小生成树.最短路时就学会了 堆实用高效,值得推荐 (如果你看完了这篇文章还不会,你可以直接Co ...

  10. php cli 下 php.ini 配置

    // 查看phpcli 模式下 扩展 php -m // 查看php cli 版本 php -v 查看命令行的ini路径,命令行下运行 php --ini Loaded Configuration F ...