在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 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
python使用in操作符时元组和数组的区别分析
May 19 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
python全栈知识点总结
Jul 01 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
python属于跨平台语言码
Jun 09 Python
python生成xml时规定dtd实例方法
Sep 21 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
Python数据可视化之绘制柱状图和条形图
May 25 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中exec与system用法区别分析
2014/09/22 PHP
前端必学之PHP语法基础
2016/01/01 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
python实现图像拼接功能
2020/03/23 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
Prototype如何更新局部页面
2013/03/03 面试题
类的返射机制中的包及核心类
2016/09/12 面试题
关于赌博的检讨书
2014/01/08 职场文书
医药个人求职信范文
2014/01/29 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
Go语言并发编程 sync.Once
2021/10/16 Golang