# AI换脸
# AndyCheimport requests
import json
import simplejson
import base64# 第一步:获取人脸关键点
def find_face(imgpath):""":param imgpath: 图片的地址:return: 一个字典类型的人脸关键点 如:{'top': 156, 'left': 108, 'width': 184, 'height': 184}"""http_url = 'https://api-cn.faceplusplus.com/facepp/v3/detect'  # 获取人脸信息的接口data = {"api_key": "x2NyKaa6vYuArYwat4x0-NpIbM9CrwGU",  # 访问url所需要的参数"api_secret": "OuHx-Xaey1QrORwdG7QetGG5JhOIC8g7",  # 访问url所需要的参数"image_url": imgpath,  # 图片地址"return_landmark": 1}files = {'image_file': open(imgpath, 'rb')}  # 定义一个字典存放图片的地址response = requests.post(http_url, data=data, files=files)res_con1 = response.content.decode('utf-8')res_json = simplejson.loads(res_con1)faces = res_json['faces']list = faces[0]rectangle = list['face_rectangle']return rectangle# 第二步:实现换脸
def merge_face(image_url1, image_url2, image_url, number):""":param image_url1: 被换脸的图片路径:param image_url2: 换脸的图片路径:param image_url: 换脸后生成图片所保存的路径:param number: 换脸的相似度"""# 首先获取两张图片的人脸关键点face1 = find_face(image_url1)face2 = find_face(image_url2)# 将人脸转换为字符串的格式rectangle1 = str(str(face1['top']) + "," + str(face1['left']) + "," + str(face1['width']) + "," + str(face1['height']))rectangle2 = str(str(face2['top']) + "," + str(face2['left']) + "," + str(face2['width']) + "," + str(face2['height']))# 读取两张图片f1 = open(image_url1, 'rb')f1_64 = base64.b64encode(f1.read())f1.close()f2 = open(image_url2, 'rb')f2_64 = base64.b64encode(f2.read())f2.close()url_add = 'https://api-cn.faceplusplus.com/imagepp/v1/mergeface'  # 实现换脸的接口data = {"api_key": "x2NyKaa6vYuArYwat4x0-NpIbM9CrwGU","api_secret": "OuHx-Xaey1QrORwdG7QetGG5JhOIC8g7","template_base64": f1_64,"template_rectangle": rectangle1,"merge_base64": f2_64,"merge_rectangle": rectangle2,"merge_rate": number}response1 = requests.post(url_add, data=data)res_con1 = response1.content.decode('utf-8')res_dict = json.JSONDecoder().decode(res_con1)result = res_dict['result']imgdata = base64.b64decode(result)file = open(image_url, 'wb')file.write(imgdata)file.close()if __name__ == '__main__':# 别人的图image1 = r"E:\test\12.jpg"# 自己的图image2 = r"E:\test\2.jpg"# 结果图image3 = r"E:\test\result.jpg"merge_face(image1, image2, image3, 100)

python调用API轻松实现AI 换脸相关推荐

  1. 【AI选股】如何通过python调用wencai包实现AI选股(小白也能学会)

    如何通过python调用wencai包实现AI选股 前言 一.wencai问财如何实现AI选股? 1.实用基础篇(wencai选股函数与使用方法) 2.进阶发挥篇(附可转债数据处理演示) 3.数据分析 ...

  2. Python调用API打造一个语音合成系统(百度智能云)

    Python调用API打造一个语音合成系统(百度智能云) 将文字转换成各种不同味道(大叔型,萝莉音,精神小伙型等)的语音. 申请一个百度智能云账号 使用Python开发一款智能语音合成系统,所以需要P ...

  3. Python轻松实现AI换脸

    目录 引言 思路 代码 效果 引言 在网上看到一篇基于python实现AI换脸的文章,觉得很好玩复现了一下.研究了几个小时后成功把迪丽热巴的脸换到关晓彤上,很好看:另外还把蔡徐坤的脸换到特朗普上,效果 ...

  4. Python调用API接口的几种方式

    本文主要介绍python中调用API的几种方式,下面是python中会用到的库. 1.urllib2 import urllib2, urllib github_url = 'https://api. ...

  5. 如何利用python调用API接口获取数据进行测试

    一.Python 可以使用 requests 库来调用 API 接口获取数据.以下是基本的步骤: 1.安装 requests 库 pip install requests 2.导入 requests ...

  6. Python调用API接口,实现人脸识别

    人生苦短,我用Python 在开始之前,先问问大家: 什么是百度Aip模块? 百度AI平台提供了很多的API接口供开发者快速的调用运用在项目中 本文写的是使用百度AI的**在线接口SDK模块(baid ...

  7. python调用api做用户登录认证_(二)Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌...

    x.x.x.x可能是你的IP或者域名 访问流程概览: 1.首先登录 2.认证成功后zabbix server返回一个token 3.带着这个token去访问各种数据,做各种操作 4.完毕! 一.用RE ...

  8. python调用api接口获取数据_python批量爬取NCBI基因注释并调用谷歌API批量翻译

    作者:沙雕学习小组 这里有视频教程:https://www.bilibili.com/video/av87724182 今天想实现这个功能: 差异分析得到了200多个基因(甚至更多) 我要一个一个把基 ...

  9. python会调用linuxapi吗_RouterOS之python调用API

    本文主要讲述官方提供的客户端以及自己写的增删查改工具: ros_tool.py 功能总汇,展示界面用了python的GUL,模块用的为  tkinter  模块 其他文件为单个功能文件. 链接:htt ...

最新文章

  1. java nio2 iocp_基于JDK7 NIO2的高性能web服务器实践之二(转)
  2. 风控模型师面试准备--技术篇(逻辑回归、决策树、集成学习)
  3. SpringMVC, Spring和Mybatis整合案例一
  4. 在线数据链路跟踪的平台化发展及思考
  5. Atitit io读取文件法 目录 1. 文件法 1 1.1. 异步读取文件: 1 1.2. 2.同步读取方法 1 1.3. 二进制读文件: 1 2. 读取api规范 1 3. Atitit 按照
  6. easyflash 教程
  7. 淘宝客网站SEO及赚钱与揭密
  8. 旷视科技2022提前批校园招聘已经开启啦!
  9. 360安全卫士添加信任区
  10. jQuery AJAX回调函数this指向问题
  11. 支付宝-相互保,创新。
  12. 惊!c语言上机编程题目?
  13. TensorFlow技术内幕(七):模型优化之XLA(上)
  14. 高通MDM平台-LK
  15. php采购管理系统,企业采购管理系统设计与实现.doc
  16. NDK学习笔记(十二) 原生图形api,使用AVILib创建一个AVI视频播放器
  17. WEB常见中间件漏洞原理
  18. vue中的:key是什么,有什么用?
  19. “海大与我“ Scrum Meeting(第十一周会议记录)
  20. IDEA背景保护色设置豆沙绿

热门文章

  1. provide和inject 用法
  2. LeetCode 881 救生艇
  3. 软件测试转行做产品经理,转型产品经理,测试工程师的出路!
  4. 不要抱怨自己的能力没有「用武之地」
  5. 程序员电脑组装_解密中国互联网企业创始人,程序员是如何打下半壁江山的?...
  6. FTP服务器、部署YUM仓库与NFS共享服务
  7. KO data-bind=“click: func“函数自动执行问题
  8. 工程伦理学_笔记(复习用)
  9. 虚拟机安装-ubuntu
  10. 图像加噪与滤波处理(python+opencv)