加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python利用PIL库使图片高斯模糊

发布时间:2020-12-17 00:04:15 所属栏目:Python 来源:网络整理
导读:一、安装PIL PIL是Python Imaging Library简称,用于处理图片。PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置。在源码ImageFilter.py的第160行: 所以,我们在这里自己改一下就OK了。 项目地址:

一、安装PIL

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

所以,我们在这里自己改一下就OK了。

项目地址:

二、修改后的代码

代码如下:

<span style="color: #0000ff;">from PIL <span style="color: #0000ff;">import<span style="color: #000000;"> Image,ImageFilter<span style="color: #0000ff;">class<span style="color: #000000;"> MyGaussianBlur(ImageFilter.Filter):
name = <span style="color: #800000;">"<span style="color: #800000;">GaussianBlur<span style="color: #800000;">"

<span style="color: #0000ff;"&gt;def</span> <span style="color: #800080;"&gt;__init__</span>(self,radius=2,bounds=<span style="color: #000000;"&gt;None):
    self.radius </span>=<span style="color: #000000;"&gt; radius
    self.bounds </span>=<span style="color: #000000;"&gt; bounds

</span><span style="color: #0000ff;"&gt;def</span><span style="color: #000000;"&gt; filter(self,image):
    </span><span style="color: #0000ff;"&gt;if</span><span style="color: #000000;"&gt; self.bounds:
        clips </span>=<span style="color: #000000;"&gt; image.crop(self.bounds).gaussian_blur(self.radius)
        image.paste(clips,self.bounds)
        </span><span style="color: #0000ff;"&gt;return</span><span style="color: #000000;"&gt; image
    </span><span style="color: #0000ff;"&gt;else</span><span style="color: #000000;"&gt;:
        </span><span style="color: #0000ff;"&gt;return</span> image.gaussian_blur(self.radius)</pre>

三、调用

simg = = == image.filter(MyGaussianBlur(radius=30 dimg,

如果只需要处理某个区域,传入bounds参数即可

四、效果

原图:

处理后的:

注:本文参考了??一文。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读