AI换脸程序,python换脸完整程序
需要用到的接口:
获取人脸信息的接口:https://API-cn。faceplus。com/facepp/v3/detect
实现换脸的接口:https://API-cn。脸plus plus。com/imagepp/v1/合并面
代码:
导入请求导入jsonimport简单jsonimport base64#第一步:获取人脸关键点def find _ face(图像路径): :参数图像路径:图片的地址:返回:一个字典类型的人脸关键点如:{top: 156, left: 108, width: 184, height :184 } http _ URL= https://API-cn。faceplus。com/facepp/v3/detect #获取人脸信息的接口data={ API _ key : x2 nykaa 6 vuarywat 4x 0-NPI BM 9 crw gu ,#访问全球资源定位器(统一资源定位器)所需要的参数API _ secret : OuHx-xaey1 qrorwdg 7 qetgg 5 jho IC 8g 7 ,#访问全球资源定位器(统一资源定位器)所需要的参数 image_url:imgpath,#图片地址return _ landmark :1 } files={ image _ file :open(img path, rb)} #定义一个字典存放图片的地址响应=请求。post(http _ URL,data=data,files=files)RES _ con 1=响应。内容。decode( utf-8 )RES _ JSON=简单JSON。loads(RES _ con 1)faces=RES _ JSON[ faces ]list=faces[0]rectangle=list[ face _ rectangle ]返回rectangle #第二步:实现换脸def merge_face(image_url1,image_url2,image_url,number): :param image_url1:被换脸的图片路径:param image_url2:换脸的图片路径:param image_url:换脸后生成图片所保存的路径:参数编号:换脸的相似度 #首先获取两张图片的人脸关键点face 1=find _ face(图像_ URL 1)face 2=find _ face(图像_ URL 2)#将人脸转换为字符串的格式rectangle 1=str(face 1[ top ]), str(face1[left]), str(face1[width]), str(face 1[ height ]) rectangle 2=str(face 2[ top ]), str(face2[left]), str(face2[width]), str(face2[height])) #读取两张图片f1=open(image_url1, Rb )f1 _ 64=base64。b 64编码(f1。read())f1。close()F2=open(image _ URL 2,Rb )F2 _ 64=base64。b 64编码(F2。read())F2。close()URL _ add= https://API-cn。faceplusplus。com/imagepp/v1/merge face #实现换脸的接口data={ API _ key : x2 nykaa 6 vuarywat x0-NPI BM 9 crwgu , API _ secret : OuHx-xaey1 qrorwdg 7 qetgg 5 jho IC 8g 7 , template_base64:f1_64, template _ rectangle :F2 _ 64, merge_rectangle:rectangle2, merge _ rate :number } response 1=请求。post(URL _ add,data=data)RES _ con 1=response 1。内容(.JSONDecoder().decode(RES _ con 1)result=RES _ dict[ result ]img data=base64。b64解码(结果)文件=打开(image _ URL, WB )文件。写(img数据)文件。close()if _ _ name _ _= _ _ main _ _ :image1=r meizi 1。jpg image2=r meizi。jpg image3=r face 1。jpg merge _ face(图像1,图像2,图像3,100)效果:
换脸前
要换的脸:
换脸后:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。