Python人物头像动漫化


里面应用的是百度ai官网申请的数据。

人物头像动漫化:

源程序代码(注释已经尽可能详细):

"""
   __author__="dazhi"
    2021/3/20-22:18
"""
import requests
import base64

# 1、-----------------------验证操作(获取access_token)鉴权
# grant_type、client_id、client_secret是百度ai里面申请的参数
host = 'https://aip.baidubce.com/oauth/2.0/token'
data = {
    'grant_type': 'client_credentials',  # 固定值
    'client_id': '【改成自己的Ak哦】',  # 在开放平台注册后所建应用的API Key
    'client_secret': '【改成自己的Sk哦】'  # 所建应用的Secret Key
}
response = requests.get(host, data)
access_token = ''
if response:
    access_token = response.json()['access_token']
    print("access_token 的值为:", access_token)
# 2、-------------------------确定网址
requests_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 需要的参数(二进制方式打开图片文件)
# with open可以自动关闭
with open('./img/4.jpg', 'rb') as file:
    # 读取图片(进行b64编码)
    img = base64.b64encode(file.read())
params = {"image": img}
headers = {'content-type': 'application/x-www-form-urlencoded'}
# access_token
requests_url = requests_url + "?access_token=" + access_token
# 发送请求(有路径有参数)
response = requests.post(requests_url, data=params, headers=headers)
# 做判断
if response:
    #保存操作
    with open("./img_new/001.jpg",'wb') as file:
        anime = response.json()['image']
        #将数据进行转化(解码操作)
        anime_image = base64.b64decode(anime)
        file.write(anime_image)

运行结果如下:

access_token的数值:

在这里插入图片描述

原照片:

在这里插入图片描述

动漫化后的照片:

在这里插入图片描述

人物头像动漫化(戴口罩):

源程序代码如下(注释已经尽可能详细):

(主要是增加了两个参数。详情见代码)

"""
   __author__="dazhi"
    2021/3/20-22:18
"""
import requests
import base64

# 1、-----------------------验证操作(获取access_token)鉴权
# grant_type、client_id、client_secret是百度ai里面申请的参数
host = 'https://aip.baidubce.com/oauth/2.0/token'
data = {
    'grant_type': 'client_credentials',  # 固定值
    'client_id': '【改成自己的Ak哦】',  # 在开放平台注册后所建应用的API Key
    'client_secret': '【改成自己的Sk哦】'  # 所建应用的Secret Key
}
response = requests.get(host, data)
access_token = ''
if response:
    access_token = response.json()['access_token']
    print("access_token 的值为:", access_token)
# 2、-------------------------确定网址
requests_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 需要的参数(二进制方式打开图片文件)
# with open可以自动关闭
with open('./img/4.jpg', 'rb') as file:
    # 读取图片(进行b64编码)
    img = base64.b64encode(file.read())
# 注意:这里就是多了type参数和mask_id参数,都是在源文档中可以查看的参数。
# type的值为anime或者anime_mask。前者生成二次元动漫图,后者生成戴口罩的二次元动漫人像。
# 1~8之间的整数,用于指定所使用的口罩的编码。大家可以自行下去尝试。
params = {"image": img,"type":'anime_mask',"mask_id":"2"}
headers = {'content-type': 'application/x-www-form-urlencoded'}
# access_token
requests_url = requests_url + "?access_token=" + access_token
# 发送请求(有路径有参数)
response = requests.post(requests_url, data=params, headers=headers)
# 做判断
if response:
    #保存操作
    with open("./img_new/001.jpg",'wb') as file:
        anime = response.json()['image']
        #将数据进行转化(解码操作)
        anime_image = base64.b64decode(anime)
        file.write(anime_image)

运行结果如下:

在这里插入图片描述

有问题请留言(点个赞呗!~~~)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢地上爬的孩子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值