python图像风格迁移教程_【人工智能】python图像风格迁移,来欣赏梵高风格的石原里美吧!...

本文介绍了如何使用Python和OpenCV进行图像风格迁移,通过简单的几步操作,将图像转换为梵高风格。首先从GitHub下载预训练模型,然后创建并运行Python脚本,最后展示了一个梵高风格的石原里美图片作为示例。
摘要由CSDN通过智能技术生成

图像的风格迁移,心心念念好久了啊!

简单几个步骤,就可以转换图片风格啦。

1. 在github下载模型,模型后缀名是 t7,新建 model 文件夹用来存放模型

图像风格迁移模型链接

2. 新建 fengge.py 文件,代码如下:

import cv2 as cv

import numpy as np

import argparse

parser = argparse.ArgumentParser(

description='This script is used to run style transfer models from '

'https://github.com/jcjohnson/fast-neural-style using OpenCV')

parser.add_argument('--input', help='Path to image or video. Skip to capture frames from camera')

parser.add_argument('--model', help='Path to .t7 model')

parser.add_argument('--width', default=-1, type=int, help='Resize input to specific width.')

parser.add_argument('--height', default=-1, type=int, help='Resize input to specific height.')

parser.add_argument('--median_filter', default=0, type=int, help='Kernel size of postprocessing blurring.')

args = parser.parse_args()

net = cv.dnn.readNetFromTorch(args.model)

if args.input:

cap = cv.VideoCapture(args.input)

else:

cap = cv.VideoCapture(0)

cv.namedWindow('Styled image', cv.WINDOW_NORMAL)

while cv.waitKey(1) < 0:

hasFrame, frame = cap.read()

if not hasFrame:

cv.waitKey()

break

inWidth = args.width if args.width != -1 else frame.shape[1]

inHeight = args.height if args.height != -1 else frame.shape[0]

inp = cv.dnn.blobFromImage(frame, 1.0, (inWidth, inHeight),

(103.939, 116.779, 123.68), swapRB=False, crop=False)

net.setInput(inp)

out = net.forward()

out = out.reshape(3, out.shape[2], out.shape[3])

out[0] += 103.939

out[1] += 116.779

out[2] += 123.68

out /= 255

out = out.transpose(1, 2, 0)

t, _ = net.getPerfProfile()

freq = cv.getTickFrequency() / 1000

print(t / freq, 'ms')

if args.median_filter:

out = cv.medianBlur(out, args.median_filter)

cv.imshow('Styled image', out)

3. 打开 cmd ,cd 到目标文件夹

4. 准备好图片 1.jpg ,在 cmd 中输入命令

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

用石原里美的图片来做效果展示:

这张就是梵高风格的石原里美啦 !

当然,自己训练一个模型也是没有问题的。

注:代码部分 参考jcjohnson的Github

如果有看到其他好看的模型,欢迎评论留言哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值