OpenCV实现图像风格迁移(梵高星空)

 引言:

在计算机视觉和深度学习的世界中,有一项令人着迷的技术被广泛应用,它能够将一种独特的艺术风格嵌入到图像中,仿佛这幅图像是由大师亲自绘制的一样。这技术被称为图像迁移,它引领我们进入一个充满无限创意可能性的领域。通过图像迁移,我们可以将一幅艺术作品的独特风格融入到任何图像中,创造出令人叹为观止的作品,同时保留原图中的关键特征。

 话不多说直接上成果展示:

 获取fast-neural-style训练好的模型:

百度网盘 请输入提取码

这里下载starry_night.t7即可,其他模型也可以自行下载测试。

完整代码展示 

import cv2

image0=cv2.imread('./image2.jpg')
image=cv2.resize(image0,(640,500))

cv2.imshow('original',image)
cv2.waitKey(0)
'''图片预处理'''
H,W=image.shape[:2] #获取尺寸
blod=cv2.dnn.blobFromImage(image,1,(H,W),(0,0,0),swapRB=True,crop=False)

net=cv2.dnn.readNet('./starry_night.t7')
# net=cv2.dnn.readNet('./mosaic.t7')
# net=cv2.dnn.readNet('./the_scream.t7')
# net=cv2.dnn.readNet('./the_wave.t7')
# net=cv2.dnn.readNet('./udnie.t7')
# net=cv2.dnn.readNet('feathers.t7')
# net=cv2.dnn.readNet('./candy.t7')
# net=cv2.dnn.readNet('./composition_vii.t7')
# net=cv2.dnn.readNet('./la_muse.t7')

net.setInput(blod)
out=net.forward()
out_new = out.reshape(out.shape[1], out.shape[2],out.shape[3])#将输出进行加一化处理
cv2.normalize(out_new,out_new,norm_type=cv2.NORM_MINMAX)
result = out_new.transpose(1,2,0) #通道转换

cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destroyAllWindows()

  • 37
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值