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正则表达式抓取成语网站
Nov 20 Python
Python入门篇之字符串
Oct 17 Python
python实现逆波兰计算表达式实例详解
May 06 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
python中的for循环
Sep 28 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
Django自带的加密算法及加密模块详解
Dec 03 Python
python适合做数据挖掘吗
Jun 16 Python
Python多分支if语句的使用
Sep 03 Python
Python基本知识点总结
Apr 07 Python
python实现学生信息管理系统(面向对象)
Jun 05 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
国内咖啡文化
2021/03/03 咖啡文化
JAVA/JSP学习系列之二
2006/10/09 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
详解node.js 事件循环
2020/07/22 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
2020/03/24 Python
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
大学生大二自我鉴定
2013/10/28 职场文书
客服服务心得体会
2013/12/30 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
产品生产计划书
2014/05/07 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
晚会开场白和结束语
2015/05/29 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
Pandas数据类型之category的用法
2021/06/28 Python