• 用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代码就能把图片做成动漫风格,大家可以去尝试一下,很多人的微信头像又可以更换了呢~

  • 相关阅读:
    Python定时任务利器—Apscheduler
    Python命令行模块(sys.argv,argparse,click)
    Rust安装和环境配置
    DBF 文件 ORACLE 数据库恢复
    认识 Cargo-Rust构建工具和包管理器
    VS Code 搭建 Rust 开发环境
    如何按名称或PID查找一个进程?如何按端口号查找一个进程?如何查看一个进程的CPU和内存、文件句柄使用情况?如何查看CPU利用率高的TOP10进程清单?如何根据PID强制终止进程?
    String 字符串
    JVM初探之类文件结构
    隐藏Windows不常用设置项
  • 原文地址:https://www.cnblogs.com/hhh188764/p/13260837.html
Copyright © 2020-2023  润新知