用Python把人物头像动漫化,不同的表情给你不同的惊喜
2020-07-08 15:32
507 查看
钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>
前言
最近上网冲浪的时候看到了一个有趣的东西,叫做『人物动漫化』,作为老大的粉丝,怎么可能放过这个机会,让我们先看看效果图:
这就是这次要用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代码就能把图片做成动漫风格,大家可以去尝试一下,很多人的微信头像又可以更换了呢~
相关文章推荐
- python初学者入门小项目之一:在 cowpy中增加自己的人物头像
- 在python不同版本下导入libvirt模块
- python 在不同层级目录import 模块的方法
- python3--利用百度智能平台实现目标人物跟踪标记
- c和python解决各种字符串反转问题的不同思路
- Python包管理不同方式的区别
- 【利用Python进行数据分析——经验篇4】将多张DataFrame表写入到同一个Excel的不同sheet中
- 初学python(对比java语言不同) 第七篇
- 「绘画技巧」一分钟画出动漫人物的喜怒哀乐中“喜”的各种表情
- 碉堡了! 纯 CSS 绘制《辛普森一家》人物头像
- Python 人物脸部识别
- python入门(七)计算不同交通工具的行进耗时(类的用法和继承)
- 定义不同错误的异常类 分类: python异常 2014-01-09 14:21 251人阅读 评论(0) 收藏
- 简述Python2与Python3的不同点
- python实现微信头像加红色数字
- c++和python string 的find()方法的返回值不同
- 用不同的字符分割字符串Python
- python2的安装&python2和python3的不同
- python 之 不同类型对象的内存占用、大小比较
- 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法