亲宝软件园·资讯

展开

Python OpenCV人物动漫化

嗨!栗子同学 人气:0

前言

前几天玩抖音,发现一个人像动漫化的操作,觉得很好玩儿。我心想:python既然这么强大,是不是也可以使用python程序来实现这样一个操作呢?

哈哈!我自己当然是没有这个本事编写这样一个牛逼的程序出来,但是百度可以呀,并且还很好用。百度AI开放平台给我们提供了完整的接口,甚至贴心的将代码都给我们写好了。这些接口还支持很多主流语言都呢,像Java、Python、PHP、C#等,我们做的就是直接调用它即可。

效果怎么样呢?我们先来看看下方的对比图吧。

效果展示

第一组古风美女——

原图——

效果图——

啊......西湖的水 我的泪......这张图动漫化的超级完美尤其是那个手部,除了脸一切都好!!!

第二组真人cos——

原图——

效果图——

大家选择图片动漫化的话 慎重点儿哈~有的挺好,有的还是挺丑的!哈哈哈

代码展示

import requests, base64
# 这个函数的操作是为了获取access_token参数
def get_access_token():
    url = 'https://aip.baidubce.com/oauth/2.0/token'
    data = {
        'grant_type': 'client_credentials',  # 固定值
        'client_id': '3j8EWb6rgg..SPY2X693LBy',  # 在开放平台注册后所建应用的API Key
        'client_secret': 'Px9KZuU0Gl...jTKktoCopnIWEiF57gf'  # 所建应用的Secret Key
    }
    res = requests.post(url, data=data)
    res = res.json()
    #print(res)
    access_token = res['access_token']
    return access_token
    
# 下面的代码就是API文档中的代码,直接搬过来使用即可。
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
f = open('zhao.jpg', 'rb')       # 二进制方式打开图片文件
img = base64.b64encode(f.read()) # 图像转为base64的格式,这是百度API文档中要求的
 
params = {"image":img}
access_token = '24.11731cd1f0...9f9b3a930f917f3681b.2592000.1596894747.282335-21221990'
request_url = request_url + "?access_token=" + get_access_token()
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
res = response.json()
# 前面我们讲述了这个请求返回的是一个字典,其中一个键就是image,代表的是处理后的图像信息。
# 将这个图像信息写入,得到最终的效果图。
if res:
    f = open("kouzhao4.jpg", 'wb')
    after_img = res['image']
    after_img = base64.b64decode(after_img)
    f.write(after_img)
    f.close()

注意

寻找 API Key 和 Secret Key首先登陆百度智能云的网址。

百度智能云

https://login.bce.baidu.com/

加载全部内容

相关教程
猜你喜欢
用户评论