在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中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
python制作一个桌面便签软件
Aug 09 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
Python实现端口检测的方法
Jul 24 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
python实现画循环圆
Nov 23 Python
python实现图像拼接功能
Mar 23 Python
python实现数字炸弹游戏程序
Jul 17 Python
使用numpy nonzero 找出非0元素
May 14 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
消息持续发送的完整例子
2006/10/09 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
python实现将元祖转换成数组的方法
2015/05/04 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
Python命令行click参数用法解析
2019/12/19 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
Python jieba库分词模式实例用法
2021/01/13 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
大整数数相乘的问题
2012/07/22 面试题
加拿大留学自荐信
2014/01/28 职场文书
一分钟演讲稿
2014/04/30 职场文书
社区文化建设方案
2014/05/02 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
施工安全保证书
2015/05/09 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书