前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >复古风格图像

复古风格图像

作者头像
裴来凡
发布2022-05-29 09:50:35
发布2022-05-29 09:50:35
17100
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
import cv2
import numpy as np
image=cv2.imread("C:/Users/xpp/Desktop/Lena.png")
cv2.imshow("original",image)
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) 
gray=cv2.medianBlur(gray,7) 
edges=cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,9,10)
color=cv2.bilateralFilter(image,1,250,250) 
cartoon=cv2.bitwise_and(color,color,mask=edges)#与运算
cv2.imshow("cartoon",cartoon) 
grayImage=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
grayImage=cv2.GaussianBlur(grayImage,(3,3),0)#高斯滤波
edgeImage=cv2.Laplacian(grayImage,-1,ksize=5)#边缘监测
edgeImage=255-edgeImage
ret,edgeImage=cv2.threshold(edgeImage,150,255,cv2.THRESH_BINARY)#将灰度图片转换为二值图片
edgePreservingImage=cv2.edgePreservingFilter(image,flags=2,sigma_s=50,sigma_r=0.4)#模糊图像
output=np.zeros(grayImage.shape)
output=cv2.bitwise_and(edgePreservingImage,edgePreservingImage,mask=edgeImage)#与运算
cv2.imshow("dim", output) 
cartoon_image=cv2.stylization(image,sigma_s=150,sigma_r=0.6) #图像风格化 
cv2.imshow("result",cartoon_image) 
cv2.waitKey(0) 
cv2.destroyAllWindows()

算法:复古风格图像是首先找到图像的边缘,并使用双边滤波器和位操作符制作图像,接着用一个边缘保持滤波器来模糊图像,并在边缘上加入一个阈值,最后运用风格化的手法,创造出形象的复古效果。

文献:徐文华, 魏宝刚, & 潘云鹤. (2003). 基于纹理合成的图像艺术风格学习. 武汉大学学报:工学版, 36(3), 5.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档