python-人像转漫画

python-人像转漫画

​在网上,以及一些视频软件里面,我们都可以看见将人像转变为漫画的软件,那我们可不可以自己来做一个呢!那还等什么,来看一看吧

 

python-人像转漫画

python-人像转漫画

材料准备

按照我们之前的操作,我们都是需要先准备材料。

1、requests模块

2、某度ai接口(https://ai.baidu.com/ai-doc/IMAGEPROCESS/Mk4i6olx5)

 

ok,材料已经准备好了,那我们来说一下思路 吧!

python-人像转漫画

思路分析

 

实现,我们需要人像转漫画,似乎我们自己写一个,以目前的能力来说,还不太现实,那我们只能去掉调用比人的了。经过查找材料,以及确定范围,于是,找到了比较好的方案。

 

1、我们调用某度的ai接口。接口需要进行加密,以及ak和sk。

2、登录ai平台,并创建对应的应用,得到ak,sk并获取access_token

3、返回图片之后,因为是base64编码,所以需要转码并输出图片。

 

代码过程

1、获取access_token.

import base64
import requests
client_id="aRWG06XOZ13d6hVVKx7pefwtX"
client_secret="8UiNMlYI313dYPZpeW3Pxna2hkiCrBEIG"
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+client_id+'&client_secret='+client_secret
response = requests.get(host)
if response:
    access_token=response.json()["access_token"]

2、人像转漫画

'''
人像动漫化
'''
​
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二进制方式打开图片文件
f = open('C:\\Users\\Administrator\\Pictures\\12.jpg', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
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)
if response:
    img_base64=response.json()["image"]

3、base64转图片输出

 img_base64=response.json()["image"]
 img= base64.b64decode(img_base64)
 with open('001.png', 'wb') as f:
        f.write(img)

 

以上,我们就完整搞定了人像转漫画的过程。

 

 

完整代码奉上

# encoding:utf-8
​
import base64
import requests
def access_token():
    client_id="aRWG06XOZ13d6hVVKx7pefwtX"
    client_secret="8UiNMlYI313dYPZpeW3Pxna2hkiCrBEIG"
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+client_id+'&client_secret='+client_secret
    response = requests.get(host)
    if response:
        return response.json()["access_token"]
def portrait_cartoon(old_img,new_img):#old_img人像图片地址,new_img漫画图片地址。
    '''人像动漫化'''
    request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
    # 二进制方式打开图片文件
    f = open(old_img, 'rb')
    img = base64.b64encode(f.read())
    params = {"image":img}
    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)
    if response:
        img_base64=response.json()["image"]
        img= base64.b64decode(img_base64)
        with open(new_img, 'wb') as f:
            f.write(img)
if __name__ == '__main__':
    portrait_cartoon("C:/img.jpg","D:/new_img.jpg")

 

相关推荐:

python变现-实现王者荣耀语音文件下载

表白树,程序员的浪漫从不会直接开口

零基础快速打造一个属于自己的微信聊天工具

 

欢迎关注我们!

python-人像转漫画

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111392.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 弗洛伊德算法怎么理解_弗洛伊德算法思想

    弗洛伊德算法怎么理解_弗洛伊德算法思想这个方法中,其中每一个顶点到另一个顶点最多就是两步。所以就是找到两个顶点的最近距离packagea;importjava.lang.reflect.Array;importjava.util.Arrays;publicclassFloydDemo{publicstaticvoidmain(String[]args){char[]di…

    2025年8月12日
    4
  • mybatis2级缓存_java二级缓存

    mybatis2级缓存_java二级缓存1.概述转载:MyBatis二级缓存全详解上一篇文章中我们介绍到了MyBatis一级缓存其实就是SqlSession级别的缓存,什么是SqlSession级别的缓存呢?一级缓存的本质是什么呢?以及一级缓存失效的原因?我希望你在看下文之前能够回想起来这些内容。MyBatis一级缓存最大的共享范围就是一个SqlSession内部,那么如果多个SqlSession需要共享缓存,则需要开启二级缓存,开启二级缓存后,会使用CachingExecutor装饰Executor,进入一.

    2026年2月1日
    4
  • spring cloud和dubbo的主要区别[通俗易懂]

    spring cloud和dubbo的主要区别[通俗易懂]1.springcloud有注册中心eurekaDubbo无用第三方的zookeeper2.Dubbo使用RPC通讯协议,提供序列化方式如下:Dubbo:Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。RMI:RMI协议采用JDK标准的java.rmi.*实现,采用阻…

    2022年6月9日
    41
  • 测试常见面试题之场景测试回答策略(如电梯该怎么测等)

    测试常见面试题之场景测试回答策略(如电梯该怎么测等)1.概述这类问题是考察面试者测试思路和测试策略的常见问题,主要要根据软件质量的六个特性(功能性、易用性、效率、可靠性、可维护性、可移植性)来进行思考,进而需要结合实际测试软件时考虑的角度,比如功能方面、接口方面、性能方面、维护难度方面、兼容性方面、界面或者说外观方面(比如本地化的一些内容以及界面美观等等)、操作难度或者说易用性方面、可靠度(比如应对异常情况的能力)方面、安全性方面等,根据这些角度结合具体要测试的内容进行思考并作答,例如,在下例中,分别从功能、界面、易用、兼容、安全、性能这六个角度结合业

    2022年6月7日
    48
  • 公网IP和内网IP如何分辨?

    公网IP和内网IP如何分辨?公网ip和内网ip之间如何分辨,公网ip和内网ip之间有什么区别?很多人都知道根据网络使用的范围不同又分为公有网络和私有网络。公有网络就是指处于公有网络的电脑的IP是“互联网”中能够识别到的地址;而私有网络指公有网络的机器不能识别到的机器。本文主要给大家介绍公网ip和内网ip的相关知识。

    2022年4月29日
    61
  • 计算机dll修复工具,DLL修复工具哪个好?五款修复能力强推荐

    计算机dll修复工具,DLL修复工具哪个好?五款修复能力强推荐为什么会用到dll修复工具呢?因为我们在打开某些程序或者软件的时候会提示找不到某某.dll文件,关键是这些dll文件还不一样,我们去网上下载这些dll文件结果显示跟系统的版本不一致,反正就是各种麻烦,自己去找又费时又费力,而且往往对于有些游戏来说,修补了某一个dll又提示缺少另一个dll文件,这些其实可能都是系统本身太精简或者没有安装一些依赖软件导致的,这时候你完全不需要手动去找这些dll文件,只…

    2022年5月30日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号