0
点赞
收藏
分享

微信扫一扫

【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~

九点韶留学 2022-05-14 阅读 93


导语


只有小孩子知道自己在找什么。他们把时间花费在布洋娃娃身上。因此对他们而言,洋娃娃就变得很重要。一旦有人将娃娃拿走,他们就会号啕大哭……           

【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_ai


文章目录

​​导语​​

​​概念介绍​​

​​官方展示的效果图​​

​​使用方法​​

​​1) 注册账户​​

​​2) 免费额度​​

​​3) 创建应用​​

​​4)领取免费资源 ​​

​​ 5)创建应用​​

​​ 6) 获取key​​

​​7) 调用接口 ​​

​​8) 在线调试API​​

​​9) python调用​​

​​10) 获取token​​

​​11) 查看图片​​

​​完整代码​​

​​我制作的效果​​

概念介绍


人像动漫化

运用对抗生成网络技术,结合人脸检测、头发分割、人像分割等技术,为用户量身定制千人千面的二次元动漫形象,并支持通过参数设置,生成戴口罩的二次元动漫人像


 效果展示


官方展示的效果图

【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_动漫_02


使用方法


1) 注册账户


打开​​百度开发平台​​,直接注册账户就可以


2) 免费额度


所有的API都会赠送一定​​免费额度​​,大家可以放心尝试哦~


3) 创建应用


进入​​控制台​​创建应用,选择产品服务->图像增强与特效



【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_json_03


4)领取免费资源 


【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_官网_04



领取成功后会在圆圈所示区域显示剩余次数~


 5)创建应用


点击创建应用,填写应用名称(任意),选择需要的接口(比如 图像增强与特效–人像动漫化),选择应用归属为个人,随便写一下应用描述



【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_官网_05

【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_动漫_06


 6) 获取key


 点击左侧应用列表,查看、保存API Key和Secret Key,后面会用到



【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_动漫_07


7) 调用接口 


请求示例

HTTP 方法:​​POST​

请求URL: ​​https://aip.baidubce.com/rest/2.0/image-process/v1/style_trans​

URL参数

参数

access_token

通过API Key和Secret Key获取的access_token,参考”​​Access Token获取​​”

Body中放置请求参数,参数详情如下:

请求参数

参数

是否必选

类型

可选值范围

说明

image

和url二选一

string

-

base64编码后大小不超过10M(参考:原图大约为8M以内),最短边至少10px,最长边最大5000px,长宽比4:1以内。注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

url

和image二选一

string

-

图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过10M(参考:原图大约为8M以内),最短边至少10px,最长边最大5000px,长宽比4:1以内,支持jpg/png/bmp格式,当image字段存在时url字段失效。

option

true

string

cartoon pencil color_pencil warm wave lavender mononoke scream gothic

cartoon:卡通画风格 pencil:铅笔风格 color_pencil:彩色铅笔画风格 warm:彩色糖块油画风格 wave:神奈川冲浪里油画风格 lavender:薰衣草油画风格 mononoke:奇异油画风格 scream:呐喊油画风格 gothic:哥特油画风格


8) 在线调试API


大家可以进入​​在线调试接口​​,嫌麻烦的也可以跳过这一步,直接通过代码调试


9) python调用


官方给出的代码如下:


# encoding:utf-8

import requests
import base64

'''
人像动漫化
'''
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())

params = {"image":img}
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())


我们对其稍作修改


# encoding:utf-8

import requests
import base64

def image_process(img_name,client_id,client_secret):
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二进制方式打开图片文件
f = open(img_name, 'rb')
img = base64.b64encode(f.read())

params = {"image":img}
access_token = get_token(client_id,client_secret)
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())
return response.json()['image']

10) 获取token


官方给出的token获取方式:


# encoding:utf-8
import requests

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
print(response.json())


我们对其稍作修改


def get_token(client_id,client_secret):
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}'
response = requests.get(host)
if response:
print(response.json())
return response.json()['access_token']
else:
print('no response!')


然后,运行代码就可以获取处理后图片的base64编码啦~


# client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id='xxx'
client_secret='xxx'
img_name='img_name.jpg'
img_base64=image_process(img_name,client_id,client_secret)
print(img_base64)


可以发现,官方已经给出了很详细的代码模板,我们真正需要改的部分也就只有
​​client_id='xxx'​client_secret='xxx'​
两行而已~


11) 查看图片


获取到编码后,可以在浏览器输入​data:image/jpeg;[你的base64编码,注意需要去掉中括号]​​查看图片
或者使用下面的代码将base64编码转换成图片


def base2picture(img_base64,img_save):
imgdata = base64.b64decode(img_base64)
with open(img_save,'wb') as f:
f.write(imgdata)
img_save='img_save.jpg'
base2picture(img_base64,img_save)

完整代码

# encoding:utf-8

import requests
import base64

def image_process(img_name,client_id,client_secret):
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二进制方式打开图片文件
f = open(img_name, 'rb')
img = base64.b64encode(f.read())

params = {"image":img}
access_token = get_token(client_id,client_secret)
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())
return response.json()['image']

def get_token(client_id,client_secret):
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}'
response = requests.get(host)
if response:
print(response.json())
return response.json()['access_token']
else:
print('no response!')

def base2picture(img_base64,img_save):
imgdata = base64.b64decode(img_base64)
with open(img_save,'wb') as f:
f.write(imgdata)


if __name__=='__main__':
client_id='xxx'
client_secret='xxx'
img_name='1.jpg'
img_base64=image_process(img_name,client_id,client_secret)
print(img_base64)

# 或者在浏览器输入 data:image/jpeg;[base64]
img_save='2.jpg'
base2picture(img_base64,img_save)

我制作的效果


 哈哈哈哈,圣诞节快乐

【圣诞快乐】叮咚 没人送你圣诞礼物没有关系,可以找我啊?只要你开口 我都没有~_json_08




举报

相关推荐

0 条评论