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)

最新文章

  1. 【Make a H5 game】JS for beginner——FROM U2B
  2. WPF模板
  3. Oracle 过程中检查数据表存在与否
  4. SQL Server类型的对应关系
  5. RecycleView + CardView 控件简析
  6. centos 6.5 zabbix3.0.4 监控apache
  7. 关于Let和var声明变量的区别
  8. 使用linux的nc来进行文件的传输
  9. 基本二叉搜索树的第K小元素
  10. app缓存设计-文件缓存
  11. android baseApplication 基类
  12. python发邮件遇到的端口号问题
  13. [百度空间] [原]android下的各种坑
  14. 物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004
  15. 文本框脚本 - select 事件
  16. Android手机自带内部存储路径的获取 (转)
  17. CloudFoundry.yml修订
  18. 【deep learning学习笔记】注释yusugomori的RBM代码 --- 头文件
  19. R语言︱噪声数据处理、数据分组——分箱法(离散化、等级化)
  20. Java面向对象进阶篇(包装类,不可变类)

热门文章

  1. linux中利用fstab实现磁盘分区自动挂载
  2. js中的局部函数和全局函数的调用
  3. vue动态加载jQuery插件
  4. workspace 打开的是我的电脑
  5. Java连载65-自定义手动抛出异常、子类的异常范围、数组初探
  6. Fluent_Python_Part3函数即对象,07-closure-decoration,闭包与装饰器
  7. c#本地缓存当数据库表更改时,缓存失效。
  8. HTTP接口调用方式
  9. ASA防火墙忘记密码之后的恢复步骤
  10. Python编程使用PyQT制作视频播放器