在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程序的方法
Apr 21 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
全面理解Python中self的用法
Jun 04 Python
Python做简单的字符串匹配详解
Mar 21 Python
深入理解python中的select模块
Apr 23 Python
python学生信息管理系统
Mar 13 Python
Pycharm设置界面全黑的方法
May 23 Python
Django 限制用户访问频率的中间件的实现
Aug 23 Python
python实现统计代码行数的小工具
Sep 19 Python
python二元表达式用法
Dec 04 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
PHP详细彻底学习Smarty
2008/03/27 PHP
php抓取https的内容的代码
2010/04/06 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
python之列表推导式的用法
2019/11/29 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
python识别验证码图片实例详解
2020/02/17 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
你所在的项目是如何确定版本号的
2015/12/28 面试题
静态变量和实例变量的区别
2015/07/07 面试题
学生党员的自我评价范文
2014/03/01 职场文书
社区居务公开实施方案
2014/03/27 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
Python Django ORM连表正反操作技巧
2021/06/13 Python
Java实现聊天机器人完善版
2021/07/04 Java/Android