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 matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
Python实现打印螺旋矩阵功能的方法
Nov 21 Python
Python文件读写保存操作的示例代码
Sep 14 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
Python的log日志功能及设置方法
Jul 11 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
详解python UDP 编程
Aug 24 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
Elasticsearch 数据类型及管理
Apr 19 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
php 中的str_replace 函数总结
2007/04/27 PHP
PHP内核探索之变量
2015/12/22 PHP
PHP6新特性分析
2016/03/03 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
js 判断 enter 事件
2009/02/12 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
庆祝国庆节标语
2014/10/09 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
2016中秋节广告语
2016/01/28 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js