本文来源吾爱破解论坛
本帖最后由 我叫周奔跑 于 2019-9-29 22:29 编辑
大噶好,我系python新手村选手周奔跑。
调用百度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, 下载次数: 8)
下载附件 保存到相册
2019-9-29 22:24 上传
效果1
1.jpg (81.81 KB, 下载次数: 2)
下载附件 保存到相册
2019-9-29 22:24 上传
效果2
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: Python实现双人五子棋源码
- 下一篇: python获取电影天堂各版块电影