在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继承问题
May 29 Python
python中正则的使用指南
Dec 04 Python
Python矩阵常见运算操作实例总结
Sep 29 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
python实现自动登录后台管理系统
Oct 18 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
python 类之间的参数传递方式
Dec 20 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
Python3自定义json逐层解析器代码
May 11 Python
Python如何生成xml文件
Jun 04 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使用base64加密解密图片示例分享
2014/01/20 PHP
php银联网页支付实现方法
2015/03/04 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
食品安全承诺书
2014/05/22 职场文书
如何写早恋检讨书
2014/09/10 职场文书
代理人委托书
2014/09/16 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
秋季运动会开幕词
2015/01/28 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
留学推荐信怎么写
2015/03/26 职场文书
军事理论课感想
2015/08/11 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers