在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中的JSON使用
Apr 28 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python实现Youku视频批量下载功能
Mar 14 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
PyQt实现界面翻转切换效果
Apr 20 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
Python爬取梨视频的示例
Jan 29 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入门经历和学习过程分享
2014/04/11 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python几种常用功能实现代码实例
2019/12/25 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
What is view? why do we have view?
2012/06/22 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
电脑专业个人求职信范文
2014/02/04 职场文书
网络宣传方案
2014/03/15 职场文书
销售工作决心书
2015/02/04 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript