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实现去除代码前行号的方法
Mar 10 Python
详解Python中的join()函数的用法
Apr 07 Python
python实现自动重启本程序的方法
Jul 09 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
使用python3+xlrd解析Excel的实例
May 04 Python
详解python读取和输出到txt
Mar 29 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
实例代码讲解Python 线程池
Aug 24 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 mssql 数据库分页SQL语句
2008/12/16 PHP
PHP SQLite类
2009/05/07 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
Python实现栈的方法
2015/05/26 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
python实现中文文本分句的例子
2019/07/15 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
征婚广告词
2014/03/17 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
与美同行演讲稿
2014/09/13 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python