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中操作字典之fromkeys()方法的使用
May 21 Python
Python实现登录接口的示例代码
Jul 21 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
python 正确保留多位小数的实例
Jul 16 Python
Python数据类型之Dict字典实例详解
May 07 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
Django组件cookie与session的具体使用
Jun 05 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
在Python中获取操作系统的进程信息
Aug 27 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
Keras中的多分类损失函数用法categorical_crossentropy
Jun 11 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 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 结果集的分页实现代码
2009/03/10 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
python pytest进阶之fixture详解
2019/06/27 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
婴儿地球:Baby Earth
2018/12/25 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
铭万公司.net面试题笔试题
2014/07/20 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
关于环保的活动方案
2014/08/25 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
交通事故协议书范本
2016/03/19 职场文书
python 中yaml文件用法大全
2021/07/04 Python