在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通过select实现异步IO的方法
Jun 04 Python
python实现用户管理系统
Jan 10 Python
python中的闭包函数
Feb 09 Python
Python装饰器用法实例分析
Jan 14 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
Python整数对象实现原理详解
Jul 01 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
python基于socket函数实现端口扫描
May 28 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 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
超级简单的php+mysql留言本源码
2009/11/11 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php中hashtable实现示例分享
2014/02/13 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
php利用事务处理转账问题
2015/04/22 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
python3使用GUI统计代码量
2019/09/18 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
公司授权委托书范文
2014/08/02 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
解约证明模板
2015/06/19 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis