在Python中使用PIL模块对图片进行高斯模糊处理的教程

Ophelia ·
更新时间:2024-11-10
· 869 次阅读

从一篇文章中看到,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()

可以看下效果:

201555170400852.jpg (500×667)

201555170538214.jpg (500×667)

您可能感兴趣的文章:python实现图片处理和特征提取详解Python中Scrapy爬虫图片处理详解浅谈python图片处理Image和skimage的区别python使用Image处理图片常用技巧分析python从网络读取图片并直接进行处理的方法python处理图片之PIL模块简单使用方法Python实现识别手写数字 Python图片读入与处理python处理圆角图片、圆形图片的例子用python处理图片实现图像中的像素访问用python处理图片之打开\显示\保存图像的方法python批量图片处理简单示例



图片 在python中 高斯 高斯模糊 Python 教程

需要 登录 后方可回复, 如果你还没有账号请 注册新账号