Python怎么实现9种图像风格迁移

发布时间:2021-10-19 09:44:06 作者:柒染
来源:亿速云 阅读:242

Python怎么实现9种图像风格迁移,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Python怎么实现9种图像风格迁移

图像风格迁移已经属于比较成熟的领域了,现在连实时的风格迁移都不成问题。之前一直想出一篇这样的文章,但无奈于大部分开源项目配置起来非常麻烦,比如 luanfujun/deep-photo-styletransfer 项目,需要安装 CUDA、pytorch、cudnn等等,配置完一天都过去了。

不过最近我发现一个非常好的开源应用项目,那就是OpenCV的DNN图像风格迁移。你只需要安装OpenCV就可以使用,在cmd/terminal中输入(如果你还没有安装Python,请看这篇文章 《Python安装》):

pip install python-opencv

不过它也有局限性,我们只能用别人训练好的模型进行风格迁移,如果我们要自定义风格,那就必须配置cudn等工具,使用 deep-photo-styletransfer 等项目的方法进行训练,今天的教程我们拿fast-neural-style训练好的模型对下面的图片做一次风格迁移。

Python怎么实现9种图像风格迁移

1.选择模型


fast-neural-style
放出的模型风格一共有9种,我们将一一尝试,其中部分风格如下比如:

Python怎么实现9种图像风格迁移

candy  

Python怎么实现9种图像风格迁移

mosaic

Python怎么实现9种图像风格迁移

starry_night

Python怎么实现9种图像风格迁移

udnie

模型文件可以扫描下方二维码关注 Python实用宝典,回复 风格迁移 下载,里面有全部9个模型风格的资源和源代码。

2.克隆OpenCV源码

我们直接克隆OpenCV开源项目中关于DNN图像迁移的例子,地址是:
https://github.com/opencv/opencv/blob/3.4.0/samples/dnn/fast_neural_style.py

代码:

Python怎么实现9种图像风格迁移

注意,源代码是基于Python2的,所以第46行少了括号,如果你是Python3请注意补上括号。这份代码可以直接使用, parser 里定义了5个参数,--input输入要迁移的图像宽度和高度, median_filter 是中值滤波器, 基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,因此理论上数值越大,图像越平滑,输出的结果细节越好(不确定)。亲自试了一下median_filter对图像的影响,发现改变微乎其微,因此直接为默认值即可。

3.开始迁移

将第二步的代码保存到一个文件中,命名为1.py,在CMD/Terminal中带参数运行脚本,其中input是源图像路径,model是迁移的风格模型文件,如运行:

python 1.py --input 1.jpg --model udnie.t7

效果:

Python怎么实现9种图像风格迁移

全部9种风格的迁移效果:

Python怎么实现9种图像风格迁移

Python怎么实现9种图像风格迁移

Python怎么实现9种图像风格迁移

关于Python怎么实现9种图像风格迁移问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. Python通过VGG16模型实现图像风格转换操作详解
  2. python如何实现图像处理

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:node.js中如何使用pm2实现占用CPu100%自动重启脚本

下一篇:如何理解Spring的Registrar倒排思想

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》