zoukankan      html  css  js  c++  java
  • 用Python把人物头像动漫化,不同的表情给你不同的惊喜

    前言

    最近上网冲浪的时候看到了一个有趣的东西,叫做『人物动漫化』,作为老大的粉丝,怎么可能放过这个机会,让我们先看看效果图:

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    这就是这次要用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')

    结果展示

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    用Python把人物头像动漫化,不同的表情给你不同的惊喜

     

    ennnn,没错我也是超级小杰的粉丝,所以就一起来吧

    50行左右的Python代码就能把图片做成动漫风格,大家可以去尝试一下,很多人的微信头像又可以更换了呢~

  • 相关阅读:
    洛谷 1339 最短路
    洛谷 1330 封锁阳光大学 图论 二分图染色
    洛谷 1262 间谍网络 Tarjan 图论
    洛谷 1373 dp 小a和uim之大逃离 良心题解
    洛谷 1972 莫队
    洛谷 2158 数论 打表 欧拉函数
    洛谷 1414 数论 分解因数 水题
    蒟蒻的省选复习(不如说是noip普及组复习)————连载中
    关于筛法
    关于整数划分的几类问题
  • 原文地址:https://www.cnblogs.com/hhh188764/p/13260837.html
Copyright © 2011-2022 走看看