Python中使用PIL库实现图片高斯模糊实例


Posted in Python onFebruary 08, 2015

一、安装PIL

PIL是Python Imaging Library简称,用于处理图片。PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置。在源码ImageFilter.py的第160行:

Python中使用PIL库实现图片高斯模糊实例

所以,我们在这里自己改一下就OK了。

项目地址:http://www.pythonware.com/products/pil/

二、修改后的代码

代码如下:

#-*- 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)

三、调用

simg = 'demo.jpg'

dimg = 'demo_blur.jpg'

image = Image.open(simg)

image = image.filter(MyGaussianBlur(radius=30))

image.save(dimg)

print dimg, 'success'

如果只需要处理某个区域,传入bounds参数即可

四、效果
原图:

Python中使用PIL库实现图片高斯模糊实例

处理后的:

Python中使用PIL库实现图片高斯模糊实例

Python 相关文章推荐
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
python爬虫基本知识
Mar 05 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
Jul 26 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
Aug 27 Python
使用Djongo模块在Django中使用MongoDB数据库
Jun 20 Python
python语言中pandas字符串分割str.split()函数
Aug 05 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 #Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 #Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 #Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 #Python
Python中装饰器的一个妙用
Feb 08 #Python
Python中使用HTMLParser解析html实例
Feb 08 #Python
Pyhton中防止SQL注入的方法
Feb 05 #Python
You might like
BBS(php & mysql)完整版(一)
2006/10/09 PHP
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
PHP attributes()函数讲解
2019/02/03 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
Python使用gensim计算文档相似性
2016/04/10 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
Python中base64与xml取值结合问题
2019/12/22 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
Java程序员综合测试题
2014/04/25 面试题
银行介绍信范文
2014/01/10 职场文书
师德师风建设方案
2014/05/08 职场文书
自我推荐信范文
2014/05/09 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
单位未婚证明范本
2014/11/25 职场文书
2014年英语工作总结
2014/12/20 职场文书
三峡大坝导游词
2015/01/31 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis