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


Posted in Python onMay 05, 2015

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

可以看下效果:

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

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

Python 相关文章推荐
python unittest实现api自动化测试
Apr 04 Python
获取python的list中含有重复值的index方法
Jun 27 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
Pycharm最新激活码2019(推荐)
Dec 31 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
python模块内置属性概念及实例
Feb 18 Python
利用python实现汉诺塔游戏
Mar 01 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
python scrapy简单模拟登录的代码分析
Jul 21 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 #Python
python实现自动更换ip的方法
May 05 #Python
浅谈MySQL中的触发器
May 05 #Python
python去除所有html标签的方法
May 05 #Python
python实现将汉字转换成汉语拼音的库
May 05 #Python
python基于Tkinter库实现简单文本编辑器实例
May 05 #Python
python实现的简单窗口倒计时界面实例
May 05 #Python
You might like
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php树型类实例
2014/12/05 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
php fread读取文件注意事项
2016/09/24 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
javascript 对象的定义方法
2007/01/10 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
js实现随机点名程序
2020/09/17 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
python动态参数用法实例分析
2015/05/25 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
tensorflow 查看梯度方式
2020/02/04 Python
Python 没有main函数的原因
2020/07/10 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
应用电子技术专业个人求职信
2013/09/21 职场文书
婚礼证婚人证婚词
2014/01/08 职场文书
对公司合理化的建议书
2014/03/12 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
高中教师考核方案
2014/05/18 职场文书
2015年采购工作总结
2015/04/10 职场文书
员工开除通知书
2015/04/25 职场文书
行政上诉状范文
2015/05/23 职场文书
Python实现信息管理系统
2022/06/05 Python