失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python-使用百度AI开放平台实现人像动漫化 黑白图片上色 图像风格转化

python-使用百度AI开放平台实现人像动漫化 黑白图片上色 图像风格转化

时间:2022-01-23 12:09:37

相关推荐

python-使用百度AI开放平台实现人像动漫化 黑白图片上色 图像风格转化

百度AI开放平台为我们提供了大量丰富的智能接口,协助我们将复杂的任务简单化,在此以图像处理技术接口为例,写了几个好玩有趣的图像处理程序,

图像风格转化、黑白图像上色、人像动漫化

分析了三个接口标准,除了URL传的最后一个值不一样,data里部分值不一样,其它的代码是一样的,所以我把上面三个处理能力合并在一起了,减少重复劳动。

import requests,base64# 百度AI开放平台鉴权函数def get_access_token():url='/oauth/2.0/token'data={'grant_type':'client_credentials', # 固定值'client_id':'pmuz5g********bcfhRp9', # 在开放平台注册后所建应用的API Key'client_secret':'m0jLfrfYu******46tx99u5' # 所建应用的Secret Key}res=requests.post(url,data=data)res=res.json()access_token=res['access_token']return access_tokendef image_process(img_before,img_after,how_to_deal): # 函数的三个参数,一个是转化前的文件名,一个是转化后的文件名,均在同一目录下,第三个是图像处理能力选择request_url='/rest/2.0/image-process/v1/'+how_to_dealif how_to_deal=='style_trans':# 判断如果是 图像风格化,需要额外添加一个风格配置others='pencil'# 风格化参数,具体可设置范围参见下面注释'''cartoon:卡通画风格pencil:铅笔风格color_pencil:彩色铅笔画风格warm:彩色糖块油画风格wave:神奈川冲浪里油画风格lavender:薰衣草油画风格mononoke:奇异油画风格scream:呐喊油画风格gothic:哥特油画风格'''else:others=''file=open(img_before,'rb') # 二进制读取图片origin_img=base64.b64encode(file.read()) # 将图片进行base64编码headers={'Content-Type':'application/x-www-form-urlencoded'}data={'access_token':get_access_token(),'image':origin_img,'option':others}res=requests.post(request_url,data=data,headers=headers)res=res.json()if res:f = open(img_after,'wb')after_img=res['image']after_img=base64.b64decode(after_img)f.write(after_img)f.close()if __name__=='__main__':img_before='black.jpg' # 当前目录下的图片img_after=img_before.split('.')# 将原文件名分成列表img_after=img_after[0]+'_1.'+img_after[1] #新生成的文件名为原文件名上加 _1image_process(img_before,img_after,'colourize') # 第三个参数: selfie_anime 为人像动漫化,colourize 图像上色,style_trans 为图像风格化print('done!')

这里为了方便将转化前的图片和转化后的图片做对比,转化后的图片在文件名上加了个_1,比如转化前是demo.jpg,转化后就是demo_1.jpg。

下面是处理前的原图,百度随便找的

这是上色之后的图片效果:

这是使用图像动漫化之后的效果

这是使用图像风格化处理的铅笔画效果。

是不是很惊艳!

如果觉得《python-使用百度AI开放平台实现人像动漫化 黑白图片上色 图像风格转化》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。