Python中使用PIL库实现图片高斯模糊实例

yipeiwu_com6年前Python基础

一、安装PIL

PIL是Python Imaging Library简称,用于处理图片。PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置。在源码ImageFilter.py的第160行:

所以,我们在这里自己改一下就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实现SQL注入检测插件实例代码

Python实现SQL注入检测插件实例代码

扫描器需要实现的功能思维导图 爬虫编写思路 首先需要开发一个爬虫用于收集网站的链接,爬虫需要记录已经爬取的链接和待爬取的链接,并且去重,用 Python 的set()就可以解决,大概...

Python提取网页中超链接的方法

下面是最简单的实现方法,先将目标网页抓回来,然后通过正则匹配a标签中的href属性来获得超链接 代码如下: import urllib2 import re url = 'htt...

用Python编写一个基于终端的实现翻译的脚本

为什么写这个程序,为什么不给这个程序配备gui?原因很简单,因为我是一个命令行控,Linux习惯了不习惯了鼠标,总觉得点着不如敲命令快,各位在看这篇文章就说明和本人有相同的爱好....

用Cython加速Python到“起飞”(推荐)

用Cython加速Python到“起飞”(推荐)

事先声明,标题没有把“Python”错打成“Cython”,因为要讲的就是名为“Cython”的东西。 Cython是让Python脚本支持C语言扩展的编译器,Cython能够将Pyt...

Python编程之event对象的用法实例分析

本文实例讲述了Python编程中event对象的用法。分享给大家供大家参考,具体如下: Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位为假,则线...