Python如何实现AI换脸功能?本篇文章小编给大家分享一下Python实现AI换脸功能代码,文章代码详细的介绍了实现方法,小编觉得挺不错的,有需要的小伙伴们可以来看看。

需要用到的接口:

获取人脸信息的接口:https://api-cn.faceplusplus.com/facepp/v3/detect

实现换脸的接口 :https://api-cn.faceplusplus.com/imagepp/v1/mergeface

代码分为三步

代码:

import 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"meizi1.jpg"

image2 = r"meizi.jpg"

image3 = r"face1.jpg"

merge_face(image1,image2,image3,100)

效果:

换脸前

要换的脸:

换脸后:

python实现视频ai换脸_Python如何实现AI换脸功能 Python实现AI换脸功能代码相关推荐

  1. python给视频添加声音_python给视频添加背景音乐并改变音量的具体方法

    用到给视频添加背景音乐,并改变音量.记录一下,与碰到同样问题的朋友共享. import subprocess inmp4='E:/PycharmProjects/untitled2/hecheng/1 ...

  2. python给视频加背景音乐_python中加背景音乐如何操作

    在python中加背景音乐的方法: 1.导入pygame资源包: 2.修改音乐的file路径: 3.使用init()方法进行初始化: 4.使用load()方法添加音乐文件: 5.使用play()方法播 ...

  3. python给视频加背景音乐_python给视频添加背景音乐并改变音量的具体方法

    用到给视频添加背景音乐,并改变音量.记录一下,与碰到同样问题的朋友共享. import subprocess inmp4='E:/PycharmProjects/untitled2/hecheng/1 ...

  4. python编程入门第一课_python入门前的第一课 python怎样入门

    人工智能时代的到来,很多文章说这么一句:"不会python,就不要说自己是程序员",这说的有点夸张了,但确实觉得目前python这个语言值得学习,而且会python是高薪程序员的必 ...

  5. python教程视频-有没有适合零基础小白学的python教程,视频或者书籍都可以?

    当你想要自学 python3 编程时,面临的第一个问题是:"我应该看哪些书/教程/视频?"我有一份亲自验证过的极简答案.我刚经过 python3 入门并已开始实战数据分析与爬虫,这 ...

  6. python中难的算法_Python算法很难吗?python神书《算法图解》PDF电子版分享给你

    许多小伙伴后台私信说,python算法让自己很头疼,有没有可以让算法像小说一样有趣的书籍资料呢?看这里吧!小宋为大家找到了这本<算法图解>的PDF电子版!让你在学习python的路上变得轻 ...

  7. python教程博客园_python学习(一)—简明python教程

    2016-04-12 15:59:47 1. 介绍 2. 安装Python 3. 最初的步骤 4. 基本概念 5. 运算符与表达式 6. 控制流 7. 函数 8. 模块 9. 数据结构 10. 解决问 ...

  8. 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程 python入门教程NO.6 用python做个简单的彩票号码统计分析工具 本文涉及的python基础语法是:字典.集合及for循环 字典的定义 字典也是一种可变的容器,它可以存 ...

  9. python内建函数测试对象身份_python 学习笔记day03-python基础、python对象、数字、函数...

    python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可 ...

  10. python写彩票预测软件_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程NO.6 用python做个简单的彩票号码统计分析工具-1.jpg (37.04 KB, 下载次数: 0) 2020-11-27 14:29 上传 python入门教程 pytho ...

最新文章

  1. java 游戏视频_Java swing实现的小游戏24点游戏源码附带视频指导教程
  2. java web--servlet(2)
  3. android 代码签名apk,[Android]混淆代码后生成带签名的apk
  4. python代码少的作品_世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?...
  5. python成绩区间曲线图_Python重现论文图表之【包含置信区间的折线柱状图】
  6. Atitit 软件开发基本法 目录 1. 第一章 总纲(包含各大原则 定律 法则) 1 2. 爱提拉的原则 3 2.1. 简单原则 KISS 3 2.2. 提升可读性 面向人类编程 而不是面向机
  7. nas 和 远程文件夹同步_群晖NAS同步文件夹功能打开有什么需要注意的?
  8. 快捷键: Windows下利用微信快速截图
  9. matlab实现二元函数BP网络,m文件实现bp神经网络逼近二元函数
  10. java mp3文件合并,java怎么实现mp3合并
  11. element-ui插件pagination分页中、英文语言切换
  12. 【无代码体验】宜搭车辆管理系统模板试用
  13. ENSP:配置静态路由表,实现不同VLAN间的通信
  14. iOS视频播放的基本方法
  15. 风险评估等级计算机化系统分类,计算机化系统风险评估报告
  16. 计算机的宽带用户名没有了怎么办,电脑没办法建立宽带连接怎么办
  17. 3.2 二维随机变量的边缘分布
  18. canvas动画粒子效果分享,可以做背景,超级好看
  19. 2021 Principled Synthetic-to-Real Dehazing Guided by Physical Priors oral解读
  20. 怎么把视频中的水印去除?建议收藏这几种去水印方法

热门文章

  1. 写在2022的尾巴上
  2. JavaScript实现手机拍摄图片的旋转、压缩
  3. 软件设计实验(一)完成UML设计:类图、用例图、时序图
  4. 区县公安合成作战中心调研:(一)引言
  5. msi 微星b350 tomahawk主板 刷bios教程
  6. html中right的作用,css3 nav-right属性怎么用?
  7. 玩玩群辉NAS-常用命令行
  8. 全开源iApp后台带PHP文件源码
  9. 2021年N1叉车司机考试报名及N1叉车司机复审考试
  10. 鸿蒙系统支持名单,12月支持鸿蒙系统的机型名单!想尝鲜的可以注意了!