易启发资源网一个让你成为创客的知识源泉,一个让你梦想成真的家园。
[Python] 调用百度api写的人脸融合
  • 首页 > 编程语言 > Python
  • 作者:帅锅门清一郎
  • 2019年9月30日 10:33 星期一
  • 浏览:17
  • 字号:
  • 评论:0
  • 调用百度api实现人脸融合,搜了一下,好像网上少有这个例子,所以就发个自己的,其实中间遇到问题了,还是在论坛上求助的。
    之前也是用过Face++的,发现效果好像差一点,但是没有次数限制;
    百度AI这个功能每天调用500次,足够自己学习用了。
    技术文档:https://ai.baidu.com/docs#/Face-Merge/top
    代码:
    [Python] 纯文本查看 复制代码

    import requests
    import json
    import base64
    import os
    from tkinter import filedialog
     
    #get_token,access_token一个月更新一次,未免过期,每次都更新一次
    def get_token():
        url='https://aip.baidubce.com/oauth/2.0/token'  #申请token的URL
        data={}
        data['grant_type']='client_credentials'         #这个必须有
        data['client_id']='*****'    #百度该应用的APP—ID
        data['client_secret']='*****'    #相应的secret
         
        response=requests.post(url, data)
        content=response.content.decode('utf-8')
        content=json.loads(content)   
         
        #print('您的access_token为 : \r',content['access_token'])
        return content['access_token']
     
    def base666(image):         #这个函数开始命名为base64,结果报错 has no attribute 'b64encode'
        f1 = open(image, 'rb')
        f1_64 = base64.b64encode(f1.read())
        f1.close()
        f1_64=f1_64.decode()
        return f1_64
     
    def faceadd(face1,face2,image):
        url='https://aip.baidubce.com/rest/2.0/face/v1/merge'+"?access_token=" + get_token()
        data={"image_template":{"image":base666(face1),"image_type":'BASE64',},"image_target":{"image":base666(face2),"image_type":"BASE64",}}
        data=json.dumps(data)  
     
        headers={'Content-Type':"application/json"}
        response=requests.post(url, data,headers=headers)
        req_con1 = response.content.decode('utf-8')
         
        content=eval(req_con1)
        result = content['result']['merge_image']
        imgdata = base64.b64decode(result)
        with open(image, 'wb') as fp:
            fp.write(imgdata)
            fp.close()
         
    if __name__=='__main__':
        image1 = filedialog.askopenfilename()
        image2 = filedialog.askopenfilename()
        image=os.path.dirname(image1)+'/Faceadd.jpg'
        faceadd(image1,image2,image)



    效果:
    exe蓝奏云:
    https://www.lanzous.com/i6hkk8b

    tpl2.jpg (214.04 KB, 下载次数: 6)

    效果1

    效果1

    1.jpg (81.81 KB, 下载次数: 1)

    效果2

    效果2

      您阅读这篇文章共花了:  
    二维码加载中...
    本文作者:帅锅门清一郎      文章标题: [Python] 调用百度api写的人脸融合
    本文地址:http://www.1316178.com/post-622.html
    版权声明:若无注明,本文皆为“易启发资源网”原创,转载请保留文章出处。

    版权所有:《易启发资源网
    文章标题:《[Python] 调用百度api写的人脸融合
    除非注明,文章均为 《易启发资源网》 原创
    转载请注明本文短网址:http://www.1316178.com/post-622.html  [生成短网址]

    返回顶部| 首页| 手气不错| 捐赠支持| 留言板| 自定义链接| 自定义链接| sitemap| 手机版本|后花园

    Copyright © 2017-2018 易启发资源网   粤ICP备18033131号-4

    2. 3.