开篇,先看一下效果图,如果觉得效果不够,那就看本文末尾的效果图:

源代码

## author:VX公众号[python小二]
import requests, simplejson, json, base64# 获取人脸关键点
def find_face(imgpath):print("正在查找……")http_url = "https://api-cn.faceplusplus.com/facepp/v3/detect"data = {"api_key": "你的api_key",  ##替换掉‘你的api_key’,不要删除双引号,下面同理"api_secret": "你的api_secret",##替换掉‘你的api_secret’"image_url": imgpath, "return_landmark":1}files = {"image_file": open(imgpath, "rb")}response = requests.post(http_url, data=data, files=files)req_con = response.content.decode('utf-8')req_dict = json.JSONDecoder().decode(req_con)this_json = simplejson.dumps(req_dict)this_json2 = simplejson.loads(this_json)#print(this_json2)faces = this_json2['faces']list0 = faces[0]rectangle = list0['face_rectangle']# print(rectangle)return rectangle# 换脸,图片的大小应不超过 2M,number 表示换脸的相似度
def merge_face(image_url1, image_url2, image_url, number):ff1 = find_face(image_url1)ff2 = find_face(image_url2)rectangle1 = str(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'])print(rectangle2)url_add = "https://api-cn.faceplusplus.com/imagepp/v1/mergeface"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()data = {"api_key": "你的api_key", ##替换掉‘你的api_key’"api_secret": "你的api_secret",##替换掉‘你的api_secret’"template_base64": f1_64, "template_rectangle": rectangle1,"merge_base64": f2_64, "merge_rectangle": rectangle2, "merge_rate": number}response = requests.post(url_add, data=data)req_con1 = response.content.decode('utf-8')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"原始图片1.jpg"  ##原始照片1的路径,若为/.png格式则将‘jpg’改为‘png’,下面同理
image2 = r"原始图片2.jpg"   ##原始照片2的路径;→将照片1 的五官加在照片2上;
image = r"新生成图片3.jpg"  ##生成的新照片merge_face(image2, image1, image, 90)

教程
在源代码中,需要添加自己的api_keyapi_secret信息;
1.访问网址-注册信息-获取api_keyapi_secret信息;
2.将api_keyapi_secret信息复制,添加到源代码中;
3.自行寻找两张人物图片后,更改源代码中图片名,运行代码即可!

首先访问网址并注册个人信息:https://console.faceplusplus.com.cn/register

注册个人信息后登陆进入网站,在菜单栏中选择“API_Key”再在页面中选择“查看”:

复制api_keyapi_secret信息:

将复制的信息,在源代码中进行替换:

下载两张人物图片,并在源代码中添加图片名称:

最后,运行:

python实现一键换脸+源码+教程相关推荐

  1. php手游服务端开发教程,【手游服务端】梦想海贼王 卡牌系列一键端服务端游戏源码+教程...

    [手游服务端]梦想海贼王 卡牌系列一键端服务端游戏源码+教程 游戏介绍: <梦想海贼王>是一款卡牌类手游,游戏以全球第一超人气动漫<海贼王>为题材,用Q版风格配合新奇多样的玩法 ...

  2. 《Python数据处理》7.2.4笔记:寻找唯一键的源码修改——由于zip方法

    <Python数据处理>7.2.4笔记:寻找唯一键的源码修改--由于zip方法 一.原因:zip方法 二.修改后 一.原因:zip方法 参考<python中使用zip函数出现> ...

  3. python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码

    今天小编就为大家分享一篇关于Scrapy框架爬取Boss直聘网Python职位信息的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 分析 使用Crawl ...

  4. python金融实战 源代码_穆棱市seo总代直销python金融量化营业实战课程 python量化项目实战源码+课件+视频...

    python金融量化生意实战课程 python量化项目实战源码+课件+视频 1. 自愿化生意综述 重要实质: 课程实质综述,自愿化/算法生意先容,python正在自愿生意中的使用简介 2. 量化生意体 ...

  5. 图片坐标提取软件/图片坐标点和像素点颜色提取软件/图片坐标获取工具/Python图片坐标获取源码/图片像素坐标获取软件/python tkinter 图片显示(完全开源)

    该软件使用python写的,可以提取像素点的坐标还有也能获取像素点的16进制数据RGB565和RGB888(RGB888仅最新的源码才支持),可以单点坐标也可以按键坐标,甚至可以使用简单的左右键配合使 ...

  6. 价值1000元的稀有二开版的无限坐席在线客服系统源码+教程

    demo软件园每日更新资源,请看到最后就能获取你想要的: 1.价值1000元的稀有二开版的无限坐席在线客服系统源码+教程 价值1000元的稀有二开版的无限坐席在线客服系统源码 直接一键安装的,启动两个 ...

  7. 安卓系统源码编译系列(1)——下载安卓系统源码教程

    安卓系统源码编译系列(一)--下载安卓系统源码教程 最近需要编译安卓系统,咨询了一个编译过安卓系统的朋友,说是下载源码就得下载两天,于是做好了长期抗战的准备,开始了下载安卓源码的旅程.在刚开始下载时, ...

  8. 龙格库塔法解微分方程组的matlab程序,MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc...

    MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc MATLAB实例源码教程龙格库塔法求解微分方程组源代码实例题目用经典 Runge-Kutta方法求下列一阶微分方程组的近似解y1 ...

  9. python浪漫代码-python七夕浪漫表白源码

    本文实例为大家分享了python七夕浪漫表白的具体代码,供大家参考,具体内容如下 from turtle import * from time import sleep def go_to(x, y) ...

最新文章

  1. 我用的archlinux+slim+openbox+tint2+feh+thunar+gnome-terminal+gvim+fcitx
  2. python报错TabError: inconsistent use of tabs and spaces in indentation解决方案
  3. 拿下了一个美女图片网站!
  4. 520,一份给程序员的“硬核”脱单秘籍
  5. NOIP1996复赛 普及组 第二题 python
  6. IO流基本知识总结【字节输入输出流、字符输入输出流、转换流、对象流】
  7. [Ogre][地形]OgreTerrain的实现原理分析
  8. 谷歌如何获取了我们的个人数据?
  9. python中当地时间_Python 日期和时间
  10. python有趣的代码-介绍wtfPython—Python中一组有趣微妙的代码【收藏】
  11. 2020 年百度之星·程序设计大赛 - 初赛一 GPA DFS深搜
  12. gdb 命令_16. 如何使用 GDB 调试 Go 程序?
  13. jQuery--checkbox全选/取消全选 及checkbox遍历
  14. 华为eNSP-动态路由实验
  15. 服务器“**”上的MSDTC不可用的解决办法
  16. 【硬件】贴片电阻的封装尺寸及丝印标注
  17. 我的微软亚洲研究院实习生面试经历
  18. php mysql die_【PHP】当mysql遇上PHP
  19. Matlab之如何对cell进行排序?
  20. 2022考研笔记-政治(马原-马克思主义哲学)

热门文章

  1. 公司规定所有接口都用 POST 请求,这是为什么?
  2. java计算机毕业设计科普网站源码+mysql数据库+系统+lw文档+部署
  3. win10系统的定位服务器,系统大神教你Win10笔记本电脑定位跟踪功能技巧
  4. 我见过的郭弃疾先生(兰亭集势CEO)
  5. Markdown符号:整除、不整除、恰整除、不恰整除
  6. Fastjson漏洞详情
  7. Hive之——Hive支持的文件格式与压缩算法(1.2.1)
  8. ffmpeg流媒体视频合并(画中画)效果并推流
  9. Java网课笔记整理
  10. ZUCC 正方教务系统 抢课脚本 抢课流程实现