在Python中使用PIL模块对图片进行高斯模糊处理的教程,
在Python中使用PIL模块对图片进行高斯模糊处理的教程,
从一篇文章中看到,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()
可以看下效果:
相关内容
- 使用SAE部署Python运行环境的教程,saepython
- 安装dbus-python的简要教程,dbus-python
- 编写Python脚本批量配置VPN的教程,python脚本vpn教程
- 利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程,uwsgim
- python中lambda与def用法对比实例分析,pythonlambda
- python排序方法实例分析,python排序实例分析
- python实现TCP服务器端与客户端的方法详解,pythontcp
- python获取当前日期和时间的方法,python获取当前日期
- Python的Urllib库的基本使用教程,pythonurllib
- python插入数据到列表的方法,python插入数据列表
评论关闭