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实现划词翻译
Apr 23 Python
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
Python中使用logging模块代替print(logging简明指南)
Jul 09 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
Python装饰器基础概念与用法详解
Dec 22 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
python os模块常用的29种方法使用详解
Jun 02 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
python解释器安装教程的方法步骤
Jul 02 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中读取和写入WORD文档的代码
2008/04/09 PHP
php 魔术函数使用说明
2010/02/21 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
PHP Reflection API详解
2015/05/12 PHP
php微信开发之图片回复功能
2018/06/14 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
使用python3实现操作串口详解
2019/01/01 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
有原因的手表:Flex Watches
2019/03/23 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
年终总结会议主持词
2014/03/17 职场文书
创先争优承诺书范文
2014/03/31 职场文书
财政局个人总结
2015/03/04 职场文书
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers
MySQL事务的隔离级别详情
2022/07/15 MySQL