在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常用列表数据结构小结
Aug 06 Python
简述Python中的面向对象编程的概念
Apr 27 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
python中yield的用法详解
Jan 13 Python
Python实现老照片修复之上色小技巧
Oct 16 Python
使用Python拟合函数曲线
Apr 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
php微信公众平台开发类实例
2015/04/01 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
JavaScript修改css样式style
2008/04/15 Javascript
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
js中function()使用方法
2013/12/24 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
简单实现python爬虫功能
2015/12/31 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
Python简单基础小程序的实例代码
2019/04/28 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
Python自带的IDE在哪里
2020/07/01 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
Java基础面试题
2014/07/19 面试题
学术会议主持词
2014/03/17 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
Python数据结构之队列详解
2022/03/21 Python