提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
这段时间一直与百度api打交道,这一次因为要完成python老师布置的一个课程任务,思索了几天也尝试了几个想法,不过前面几个效果都不太理想,,也就放弃了,因为看到一篇文章关于图像动漫化的也就想起用百度api做一个交作业,因为是学习还请大家指出不足之处。
提示:以下是本篇文章正文内容,下面案例可供参考
一、基于百度api实现图像动漫化和人脸处理
百度api的功能十分强大,大家有兴趣可以去官网了解 百度智能云官网 我只用了他小小一部分,而且免费试用的次数也够用了。
二、所有使用到的库
1.引入库
pip下载:
pip install pillow
# 下载pillow使用方法是PIL
pip install requests
代码如下(示例):
from PIL import Image
import requests
import base64
import os
2.完整代码
代码如下:
from PIL import Image
import requests
import base64
import os
def get_access_token(type="图像增强"):
""""
这个函数的操作是为了获取access_token参数
"""
# access_token的有效期为30天
url = 'https://aip.baidubce.com/oauth/2.0/token'
if type == "图像增强":
# 用于人物动漫化和图像风格转换
data = {
'grant_type': 'client_credentials',
# 固定值
'client_id': 'Tupwpj******EjmRRZC3Arh',
# 在开放平台注册后所建应用的API Key
'client_secret': 'FsMnH******32lRlVK3eSl'
# 所建应用的Secret Key
}
else:
# 用于人脸处理
data = {
'grant_type': 'client_credentials',
# 固定值
'client_id': '8dBYAk5WU*******WzBflwn',
# 在开放平台注册后所建应用的API Key
'client_secret': 'GApiXX********QirebMKWq3GElT'
# 所建应用的Secret Key
}
res = requests.post(url, data=data).json()
access_token = res['access_token']
# print(access_token)
if access_token:
return access_token
else:
return None
def get_face_contrast(img1_path, img2_path):
""" 两张图片相似度对比 方法 """
with open(img1_path, "rb") as f:
# 图像转为base64的格式,百度API文档中要求
img_1 = base64.b64encode(f.read())
f.close()
with open(img2_path, "rb") as f:
# 图像转为base64的格式,百度API文档中要求
img_2 = base64.b64encode(f.read())
f.close()
request_url = "https://aip.baidubce.com/rest/2.0/face/v3/match"
params = [
{
"image": img_1,
# 图片数据
"image_type": "BASE64",
# 图片类型
"quality_control": "LOW"
# 图片质量控制为较低的质量要求
},
{
"image": img_2,
# 图片数据
"image_type": "BASE64",
# 图片类型
"quality_control": "LOW"
# 图片质量控制为较低的质量要求
}
]
# 百度固定格式
request_url = request_url + "?access_token=" + get_access_token("人脸处理")
headers