图像风格转换实战

基于百度智能云的图像风格转换

如标题所示,你可以看到这是毫无含金量的一篇文章(大佬勿喷)。但鉴于目前未发现相关文章,因此,记录下所做的一些事情,顺便如果能够给别人一些有益的启发,那就非常nice了。话不多说,先上代码。

# encoding:utf-8

'''
Time  :2022.2.27
Author:hfutcser
Email :qq123rw@gmail.com
Name  :imageTrans.py
'''

import requests
import base64
import urllib
import json


type = eval(input('选择需要转换的图片风格(输入数字1-9进行选择):\n1、卡通画\n2、铅笔画\n3、彩色铅笔画\n4、彩色糖块油画\n5、神奈川冲浪里油画'
'\n6、薰衣草油画\n7、奇异油画\n8、呐喊油画\n9、哥特油画\n'))
option = {1:"cartoon",
          2:"pencil",
          3:"color_pencil",
          4:"warm",
          5:"wave",
          6:"lavender",
          7:"mononoke",
          8:"scream",
          9:"gothic"
    }
s_option = option.get(type,None)
#print(s_option)


def save_base_image(img_str,filename):
    img_data = base64.b64decode(img_str)
    with open(filename, 'wb') as f:
          f.write(img_data)
'''
图像风格转换
'''
def image_trans(filename,trans_filename):
    request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/style_trans"
    f = open(filename, 'rb')
    img = base64.b64encode(f.read())

    params = {"image":img,"option":s_option}
    params = urllib.parse.urlencode(params).encode("utf-8")
    #获取自己的access_token,详情见百度智能云官网教程
    access_token = '【此处填写您自己获取到的access_token】'
    request_url = request_url + "?access_token=" + access_token

    request = urllib.request.Request(url=request_url, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib.request.urlopen(request)
    content = response.read()
    if content:
        content = content.decode('utf-8')
        data = json.loads(content)
        img_str = data['image']
        save_base_image(img_str, trans_filename)

trans_filename = 'transXinyiWang_1' + repr(type) + '.png'
image_trans('XinyiWang_1.jpg',trans_filename)

上面代码需要自己修改的地方总共有两处:

  1. 需要获取到access_token ,这个很简单,教程有许多且不复杂;
  2. 需要修改最后一行代码的名称信息

较为有趣的是,百度智能云提供了包括卡通画在内的九种图像风格的转化,具体实现算法不得而知。虽然已经用于商用,但调用后发现效果并不是很好,可改进的点还算比较多。以后有时间自己用GAN跑一跑应该效果会更好些。
最后,简单看一下效果(女神别打我,纯属学术,侵删。)
原图1:
请添加图片描述
卡通画:
请添加图片描述
彩色铅笔画:
请添加图片描述
哥特油画:
请添加图片描述
原图2:
请添加图片描述
卡通画:
请添加图片描述
彩色铅笔画:
请添加图片描述
奇异油画:
请添加图片描述
可以看到API处理的效果差强人意,但依然有进步空间。有问题欢迎私信留言或加我联系方式。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值