python实现视频ai换脸_新手:Python AI换脸代码 出错 大佬来看看,怎么解决修复...

[Python] 纯文本查看 复制代码import json

import requests

import simplejson

import base64

# 第一步:获取人脸关键点

def find_face(imgpath):

print('finding')

http_url = 'https://api-cn.faceplusplus.com/facepp/v3/detect' #调用第三方接口API

data = {"api_key": 'vBsroHEMfUqG3Ck2thTj3mKSWMh9qxfA',

"api_secret": 'CCeb3HT5yRJ72uVrsgcgmVnmseyyAUlL', "image_url": imgpath, "return_landmark": 1

}

files = {'image_file':open(imgpath, 'rb')}

response = requests.post(http_url,data=data,files=files)

# print(response)

req_con = response.content.decode('utf-8')

# print(req_con)

this_json = simplejson.loads(req_con)

faces = this_json['faces']

list0 = faces[0]

rectangle = list0['face_rectangle']

print(rectangle)

return rectangle

#第二步 换脸

def merge_face(image_url1,image_url2,image_url,number): #换脸的相似度

ff1 = find_face(image_url1)

ff2 = find_face(image_url2)

rectangle1 = str(ff1['top']) + "," + str(ff1['left']) + "," + str(ff1['width']) + "," + str(ff1['height'])

rectangle2 = str(ff2['top']) + "," + str(ff2['left']) + "," + str(ff2['width']) + "," + str(ff2['height'])

f1 =open(image_url1, 'rb')

f1_64 = base64.b64decode(f1.read()) #进行编码

f1.close()

f2 = open(image_url1, 'rb')

f2_64 = base64.b64decode(f2.read()) # 进行编码

f2.close()

url_add = 'https://api-cn.faceplusplus.com/facepp/v3/detect'

data = {"api_key": 'vBsroHEMfUqG3Ck2thTj3mKSWMh9qxfA', "api_secret": 'CCeb3HT5yRJ72uVrsgcgmVnmseyyAUlL',

"template_base64": f1_64,"template_rectangle": rectangle1,

"merge_base64": f2_64, "merge_rectangle": rectangle2, "merge_rate": number

}

rectangle1 = requests.post(url_add,data=data)

req_con1 = rectangle1.content.decode('utf-8')

print(req_con1)

req_dict = json.JSONDecoder().decode(req_con1)

result = req_dict['result']

imgdata = base64.b64decode(result)

file = open(image_url,'wb')

file.write(imgdata)

file.close()

image1 = r"C:\Users\W\Desktop\312.jpg"

image2 = r"C:\Users\W\Desktop\12345.jpg"

image = r"C:\Users\W\Desktop\face.jpg"

merge_face(image1,image2,image,100)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值