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实现两款计算器功能示例
Dec 19 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
深入浅析Python的类
Jun 22 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 Python
Python打包为exe详细教程
May 18 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中MVC的开发经验分享
2012/05/17 PHP
php GUID生成函数和类
2014/03/10 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
python实现读取命令行参数的方法
2015/05/22 Python
Python 学习教程之networkx
2019/04/15 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
农场厂长岗位职责
2013/12/28 职场文书
教师工作失职检讨书
2014/09/18 职场文书
如何写辞职信
2015/05/13 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电
mysql 获取相邻数据项
2022/05/11 MySQL