现在很多的相机app或者是修图软件都可以将图片转为各种不同的风格,而有些小伙伴就问小编在python中如何将图片变为漫画风格 。那小编就来给大家分享一个python中将图片转为漫画的方法,感兴趣的话就一起往下看看吧 。
文章插图
这个方法的实现思路就是将图片的像素采样以及双边滤波值个减小,这样就能够让图片呈现出一种比较模糊的感觉,因为漫画的精度是没有照片那么高的 。然后将图片转为灰度图再经过五次算法的处理,最后转为彩色图片即可 。
1.首先就是要定义一个函数来实现模块化编码,并设置好保存图片的文件路径以及一些已经决定好的参数,代码示例如下:
import cv2from PIL import Image, ImageOps, ImageFilterdef toCarttonStyle(picturePath):imgInput_FileName = picturePathimgOutput_FileName = picturePath.split(".")[0] + '_cartoon.' + picturePath.split(".")[1]num_down = 2 num_bilateral = 72.第二步的话就是要将图片给读取出来,然后使用高斯金字塔方法将图片的采样值降低 。之后使用双边滤波去将图片的原本滤波值给取代,这样图片就能够有一种线条的感觉了,示例如下:
【Python怎么将图片变为漫画风格?Python图片转漫画如何实现】img_color = img_rgb for _ in range(num_down): img_color = cv2.pyrDown(img_color)for _ in range(num_bilateral): img_color = cv2.bilateralFilter(img_color, d=9, sigmaColor=9, sigmaSpace=7)3.之后就是先将图片的采样值恢复到原本的数值,然后再将其转为灰度图片并且设置起模糊值为7 。调用adaptiveThreshold方法去识别到图片上的各个边缘,然后将其数值提高就能够显示出笔画的样子,代码如下:
for _ in range(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)4.最后只需要将图片的尺寸修改为固定大小,并将其转为彩色图像后保存起来就好了,示例如下:
height=img_rgb.shape[0] width = img_rgb.shape[1] img_color=cv2.resize(img_color,(width,height)) img_edge = cv2.cvtColor(img_edge, cv2.COLOR_GRAY2RGB) img_cartoon = cv2.bitwise_and(img_color, img_edge) cv2.imwrite(imgOutput_FileName, img_cartoon)toCarttonStyle(imgInput_FileName)以上就是关于“Python怎么将图片变为漫画风格?Python图片转漫画如何实现”的全部内容了,希望对你有所帮助 。
推荐阅读
- Python字符串怎么连接?Python连接多个字符串有什么方法
- Python将图片转为素描画怎么做?Python如何实现图片风格转换
- 淘宝开店怎么开直通车?有何推广技巧?
- 淘宝商家互补销量怎么样?注意什么?
- 淘宝优化主图软件哪个好?怎么优化?
- 淘宝异常退款怎么处理?常见场景有哪些?
- 淘宝店申请缺货对店铺有影响吗?怎么解决?
- 淘宝可以补大单上层级吗?淘宝层级怎么提升?
- 淘宝开店做单会有风险吗?怎么稳妥做单?
- 淘宝怎么拒收快递?运费是怎么计算的?