在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 BeautifulSoup使用方法详解
Nov 21 Python
python实现simhash算法实例
Apr 25 Python
python目录与文件名操作例子
Aug 28 Python
Python自动发邮件脚本
Mar 31 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
解决Python中回文数和质数的问题
Nov 24 Python
基于Python获取城市近7天天气预报
Nov 26 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
Feb 17 Python
Python流程控制语句的深入讲解
Jun 15 Python
2021年pycharm的最新安装教程及基本使用图文详解
Apr 03 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 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实现分页的一个示例
2006/10/09 PHP
火车头采集器3.0采集图文教程
2007/03/17 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Tensorflow 多线程设置方式
2020/02/06 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
世界上最好的帽子:Tilley
2016/11/27 全球购物
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
党员公开承诺践诺书
2014/03/25 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
浅谈如何保证Mysql主从一致
2022/03/13 MySQL