引言:
在计算机视觉和深度学习的世界中,有一项令人着迷的技术被广泛应用,它能够将一种独特的艺术风格嵌入到图像中,仿佛这幅图像是由大师亲自绘制的一样。这技术被称为图像迁移,它引领我们进入一个充满无限创意可能性的领域。通过图像迁移,我们可以将一幅艺术作品的独特风格融入到任何图像中,创造出令人叹为观止的作品,同时保留原图中的关键特征。
话不多说直接上成果展示:
获取fast-neural-style训练好的模型:
百度网盘 请输入提取码
这里下载starry_night.t7即可,其他模型也可以自行下载测试。文章来源:https://www.toymoban.com/news/detail-715001.html
文章来源地址https://www.toymoban.com/news/detail-715001.html
完整代码展示
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()
到了这里,关于OpenCV实现图像风格迁移(梵高星空)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!