前言
最近上网冲浪的时候看到了一个有趣的东西,叫做『人物动漫化』,作为老大的粉丝,怎么可能放过这个机会,让我们先看看效果图:
这就是这次要用Python搞的事情啦,我们会利用百度AI的人物动漫化技术,结合Python对图片进行处理,生成动漫图片。
开始敲代码
老规矩先来敲代码,导入所需库
import base64
import requests
接下来利用百度AI的账号获取token,得到调用权限
def get_access_token():
# 获取token的API
url = 'https://aip.baidubce.com/oauth/2.0/token'
# 获取access_token需要的参数
params = {
# 固定参数
'grant_type':'client_credentials',
# 必选参数,传入你的API Key
'client_id':'sUxvp1MQkEXLuzkCY10SP8M1',
# 必选参数,传入你的Secret Key
'client_secret':'miK5YLBsMGvGC84q7eFtGxiAefmIS8sq'
}
# 发送请求,获取响应数据
response = requests.post(url, params)
# 将响应的数据转成字典类型,然后取出access_token
access_token = eval(response.text)['access_token']
# 将access_token返回
return access_token
然后编写我们的图片处理代码,来进行人物的动漫化处理,并保存到本地,调用我们的函数,输入我们要处理的图片地址和处理后的存储地址即可
def img2Cartoon(img):
# 头像动漫化的API
url = 'https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime'
# 以二进制的方式读取原始图片
origin_im = open(img, 'rb')
# 将图片进行base64编码
img = base64.b64encode(origin_im .read())
# 关闭原图片
origin_im.close()
# 请求的headers信息,固定写法
headers = {'content-type':'application/x-www-form-urlencoded'}
# 请求的参数
params = {
# 开始获取的access_token
'access_token':get_access_token(),
# 图片的base64编码
'image':img,
}
# 发送请求
response = requests.post(url, data=params, headers=headers)
# 对响应结果进行处理
if response:
# 打开一个文件
f = open('01.jpg', 'wb')
# 获取动漫头像
anime = response.json()['image']
# 对返回的头像进行解码
anime = base64.b64decode(anime)
# 将头像写入文件当中
f.write(anime)
f.close()
if __name__ == '__main__':
img2Cartoon('1.jpg')
结果展示
ennnn,没错我也是超级小杰的粉丝,当然不能放过,所以就一起来吧
50行左右的Python代码就能把图片做成动漫风格,大家可以去尝试一下,很多人的微信头像又可以更换了呢~
本文分享 CSDN - 松鼠爱吃饼干。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4848094/blog/4746037