python实战之百度智能云使人像动漫化

 更新时间:2024年04月08日 11:30:12   作者:Linkage interrupt  
这篇文章主要介绍了python实战之百度智能云使人像动漫化,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下

一、目标

之前无意中看到有某位博主写过人像动漫化这样的文章,看着还挺好玩,所以我也想尝试一下。

利用百度智能云中的人工智能,对图片进行处理达到人像动漫化的效果。

二、准备工作

1.百度云智能账号创建

2.图像特效应用

3.开发环境python3.7+pycharm

首先要注册一个百度智能云账号,并创建这个图像特效应用

在这里插入图片描述

三、操作流程

3.1 阅读官方文档

当我们要使用一个我们不太了解的东西时,阅读官方文档无疑是最重要的,官方文档一般都写的特别详细,对每一个功能描述的很细节,我们先来看一下

在这里插入图片描述
在这里插入图片描述

而且这里有案例,这里我使用的是python

3.2 开始实现鉴权

因为调用这么个接口api要进行鉴权,就是官方文档说得到access_token,如何鉴权呢?

在这里插入图片描述
在这里插入图片描述

import requests
import pprint
def get_access_token(id,secret):
    get_access_token_url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+id+'&client_secret='+secret
    response=requests.get(get_access_token_url)
    pprint.pprint(response.json())
id='*******************'
secret='******************'
get_access_token(id,secret)

这里的id和secret就是创建应用的appkey和secretkey:

在这里插入图片描述

上述代码打印结果有很多,阅读官网文档得知,我们这里只需要得到access_token就OK了

在这里插入图片描述

修改上述代码以获取access_token

import requests
def get_access_token(id,secret):
    get_access_token_url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+id+'&client_secret='+secret
    response=requests.get(get_access_token_url)
    content=response.json()
    access_token=content['access_token']
    print(access_token)
id='*******************'
secret='******************'
get_access_token(id,secret)

3.3 人像动漫化实现

正片开始

在这里插入图片描述

在这里插入图片描述

修改代码

import requests
import pprint
import base64
def get_access_token(id,secret):
    get_access_token_url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+id+'&client_secret='+secret
    response=requests.get(get_access_token_url)
    content=response.json()
    access_token=content['access_token']
    return access_token

def Animation(img_file,access_token):
    request_url='https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime'
    f=open(img_file,'rb')
    image=base64.b64encode(f.read())
    params = {"image":image}
    request_url = request_url + "?access_token=" + access_token
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    response = requests.post(request_url, data=params, headers=headers)
    pprint.pprint(response.json())
def main():
    img_file = '1.jpg'#图片地址
    id = '**************************'
    secret = '**************************'
    access_token = get_access_token(id, secret)
    Animation(img_file, access_token)
if __name__ == '__main__':
    main()

这时可以得到一系列的返回值

在这里插入图片描述

我们这里只要image

获取image值

修改代码

import requests
import pprint
import base64
def get_access_token(id,secret):
    get_access_token_url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+id+'&client_secret='+secret
    response=requests.get(get_access_token_url)
    content=response.json()
    access_token=content['access_token']
    return access_token

def Animation(img_file,access_token):
    request_url='https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime'
    f=open(img_file,'rb')
    image=base64.b64encode(f.read())
    params = {"image":image}
    request_url = request_url + "?access_token=" + access_token
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    response = requests.post(request_url, data=params, headers=headers)
    image_content=response.json()
    image=image_content['image']
    print(image)
def main():
    img_file = '1.jpg'#图片地址
    id = '**************************'
    secret = '**************************'
    access_token = get_access_token(id, secret)
    Animation(img_file, access_token)
if __name__ == '__main__':
    main()

获取到一串base64编码的图片,这显然快得到我们想要的东西了

 with open('result.jpg','wb') as f:
        f.write(base64.b64decode(image))

保存到本地

看一下对比

在这里插入图片描述

呃呃呃,这。。。。还好吧,哈哈哈

四、完整代码如下

import requests
import pprint
import base64
def get_access_token(id,secret):
    get_access_token_url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+id+'&client_secret='+secret
    response=requests.get(get_access_token_url)
    content=response.json()
    access_token=content['access_token']
    return access_token

def Animation(img_file,access_token):
    request_url='https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime'
    f=open(img_file,'rb')
    image=base64.b64encode(f.read())
    params = {"image":image}
    request_url = request_url + "?access_token=" + access_token
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    response = requests.post(request_url, data=params, headers=headers)
    image_content=response.json()
    image=image_content['image']
    with open('result.jpg','wb') as f:
        f.write(base64.b64decode(image))  
def main():
    img_file = '1.jpg'#图片地址
    id = '**************************'
    secret = '**************************'
    access_token = get_access_token(id, secret)
    Animation(img_file, access_token)
if __name__ == '__main__':
    main()

五、还能这么玩?

在这里插入图片描述

厉害了,还能加口罩,试一下

修改代码

params = 
{
"image":image,"type":'anime_mask',"mask_id":1
}
#mask_id 1-8的整数,就用个1吧

看一下效果

在这里插入图片描述

啧啧啧

到此这篇关于python实战之百度智能云使人像动漫化的文章就介绍到这了,更多相关python人像动漫化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Opencv实现倾斜图片转正示例

    Opencv实现倾斜图片转正示例

    本文主要介绍了Opencv实现倾斜图片转正示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Python 比较两个数组的元素的异同方法

    Python 比较两个数组的元素的异同方法

    下面小编就为大家带来一篇Python 比较两个数组的元素的异同方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • python mac下安装虚拟环境的图文教程

    python mac下安装虚拟环境的图文教程

    这篇文章主要介绍了python mac下安装虚拟环境 的相关资料,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Python中执行MySQL结果限制和分页查询示例详解

    Python中执行MySQL结果限制和分页查询示例详解

    这篇文章主要为大家介绍了Python中执行MySQL结果限制和分页查询示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Python CSV文件模块的使用案例分析

    Python CSV文件模块的使用案例分析

    这篇文章主要介绍了Python CSV文件模块的使用,结合具体案例形式分析了Python使用csv模块操作csv文件的相关使用技巧与相关注意事项,需要的朋友可以参考下
    2019-12-12
  • 恢复百度云盘本地误删的文件脚本(简单方法)

    恢复百度云盘本地误删的文件脚本(简单方法)

    下面小编就为大家带来一篇恢复百度云盘本地误删的文件脚本(简单方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Python爬虫获取基金净值信息详情

    Python爬虫获取基金净值信息详情

    这篇文章主要介绍了Python爬虫获取基金净值信息详情,文章基于钱两篇文章的内容围绕python的相关资料展开详细介绍,需要的小伙伴可以参考一下
    2022-05-05
  • Python 字符串操作实现代码(截取/替换/查找/分割)

    Python 字符串操作实现代码(截取/替换/查找/分割)

    这篇文章主要介绍了Python 字符串截取/替换/查找/分割等实现方法,需要的朋友可以参考下
    2013-06-06
  • 如何使用Python中的正则表达式处理html文件

    如何使用Python中的正则表达式处理html文件

    html类型的文本数据内容是由前端代码书写的标签+文本数据的格式,可以直接在chrome浏览器打开,清楚的展示出文本的格式,下面这篇文章主要给大家介绍了关于如何使用Python中的正则表达式处理html文件的相关资料,需要的朋友可以参考下
    2023-04-04
  • Django框架中数据的连锁查询和限制返回数据的方法

    Django框架中数据的连锁查询和限制返回数据的方法

    这篇文章主要介绍了Django框架中数据的连锁查询和限制返回数据的方法,Django是Python重多高人气框架中最为著名的一个,需要的朋友可以参考下
    2015-07-07

最新评论