介绍
小编给大家分享一下python图片转换成素描和漫画格式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
具体内容如下
原图
图片转换后的成果
源码
# - * -编码:utf - 8 - * 进口cv2 从公益诉讼导入图像,ImageOps ImageFilter #转换成漫画风格 def toCarttonStyle (picturePath): #设置输入输出路径和文件名称 imgInput_FileName=picturePath imgOutput_FileName=picturePath.split (“!”) [0] + & # 39; _cartoon强生# 39;+ picturePath.split (“!”) [1] #属性设置 num_down=2 #缩减像素采样的数目 num_bilateral=7 #定义双边滤波的数目 #读取图片 img_rgb=cv2.imread (imgInput_FileName) #用高斯金字塔降低取样 img_color=img_rgb 在范围(num_down): _ img_color=cv2.pyrDown (img_color) #重复使用小的双边滤波代替一个大的滤波 在范围(num_bilateral): _ img_color=cv2。bilateralFilter (img_color d=9, sigmaColor=9, sigmaSpace=7) #升采样图片到原始大小 在范围(num_down): _ img_color=cv2.pyrUp (img_color) #转换为灰度并且使其产生中等的模糊 img_gray=cv2。cvtColor (img_rgb cv2.COLOR_RGB2GRAY) img_blur=cv2。medianBlur (img_gray, 7) #检测到边缘并且增强其效果 img_edge=cv2。adaptiveThreshold (img_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, blockSize=9, C=2) #算法处理后,照片的尺寸可能会不统一 #把照片的尺寸统一化 身高=img_rgb.shape [0] 宽度=img_rgb.shape [1] img_color=cv2.resize (img_color(宽度、高度)) #转换回彩色图像 img_edge=cv2。cvtColor (img_edge cv2.COLOR_GRAY2RGB) img_cartoon=cv2。bitwise_and (img_color img_edge) #保存转换后的图片 cv2。imwrite (imgOutput_FileName img_cartoon) 打印(& # 39;文件转换成漫画成功,保存在& # 39;+ imgOutput_FileName) #透明度转换素描转换的一部分 def道奇(a, b,α): #α为图片透明度 返回最小(int (* 255/(256 - b *α)),255) #图片转换为素描 def toSketchStyle(α=1.0)picturePath模糊=25日: #设置输入输出路径和文件名称 imgInput_FileName=picturePath imgOutput_FileName=picturePath.split (“!”) [0] + & # 39; _Sketch强生# 39;+ picturePath.split (“!”) [1] #转化成ima对象 img=Image.open (picturePath) #将文件转成灰色 img1=img.convert (& # 39; l # 39;) img2=img1.copy () img2=ImageOps.invert (img2) #模糊度 因为我在范围(模糊): img2=img2.filter (ImageFilter.BLUR) 宽度,高度=img1.size x的范围(宽度): y的范围(高度): 一个=img1。获取像素((x, y)) b=img2。获取像素((x, y)) img1。putpixel (x, y)、道奇(a, b,α)) #保存转换后文件 img1.save (imgOutput_FileName) 打印(& # 39;文件转换成漫画成功,保存在& # 39;+ imgOutput_FileName) if __name__==& # 39; __main__ # 39;: imgInput_FileName=输入(& # 39;输入文件路径:& # 39;) 而真正的: 打印(& # 39;1,漫画风格& # 39;) 打印(& # 39;2、素描风格& # 39;) userChoose=输入(& # 39;请选择风格(输入序号即可):& # 39;) 如果userChoose.__eq__ (& # 39; 1 & # 39;): toCarttonStyle (imgInput_FileName) 打破 elif userChoose.__eq__ (& # 39; 2 & # 39;): toSketchStyle (imgInput_FileName) 打破 其他: 打印(& # 39;违法输入(请输入序号)& # 39;) 打破
以上是python图片转换成素描和漫画格式的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!