在Python中使用PIL模块对图片进行高斯模糊处理的教程
发布时间:2020-12-16 19:38:52 所属栏目:Python 来源:网络整理
导读:从一篇文章中看到,PIL 1.1.5 已经内置了高斯模糊,但是并没有在文档中提及,而且PIL的高斯模糊中 radius 是硬编码, 虽然构造方法中有传入 radius 参数,但压根就没有用到 (看这里),所以需要自己进行改造,当然,知道了原因, 修改起来自然非常简单了。
从一篇文章中看到,PIL 1.1.5 已经内置了高斯模糊,但是并没有在文档中提及,而且PIL的高斯模糊中 radius 是硬编码, 虽然构造方法中有传入 radius 参数,但压根就没有用到 (看这里),所以需要自己进行改造,当然,知道了原因, 修改起来自然非常简单了。 结合帖子中的需求,对局部进行高斯模糊,所以还需要结合使用 crop 和 paste 方法实现局部使用滤镜。 代码如下: #-*- coding: utf-8 -*- from PIL import Image,ImageFilter class MyGaussianBlur(ImageFilter.Filter): name = "GaussianBlur" def __init__(self,radius=2,bounds=None): self.radius = radius self.bounds = bounds def filter(self,image): if self.bounds: clips = image.crop(self.bounds).gaussian_blur(self.radius) image.paste(clips,self.bounds) return image else: return image.gaussian_blur(self.radius) bounds = (150,130,280,230) image = Image.open('source.jpg') image = image.filter(MyGaussianBlur(radius=29,bounds=bounds)) image.show() 可以看下效果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读