在Python中使用PIL模块对图片进行高斯模糊处理的教程

从一篇文章中看到,pil 1.1.5 已经内置了高斯模糊,但是并没有在文档中提及,而且pil的高斯模糊中 radius 是硬编码, 虽然构造方法中有传入 radius 参数,但压根就没有用到 (看这里),所以需要自己进行改造,当然,知道了原因, 修改起来自然非常简单了。

结合帖子中的需求,对局部进行高斯模糊,所以还需要结合使用 crop 和 paste 方法实现局部使用滤镜。

代码如下:

#-*- coding: utf-8 -*-from PIL import Image, ImageFilterclass 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)bounds = (150, 130, 280, 230)image = Image.open('source.jpg')image = image.filter(MyGaussianBlur(radius=29, bounds=bounds))image.show()

登录后复制

可以看下效果:

201555170400852.jpg (500×667)

立即学习“Python免费学习笔记(深入)”;

201555170538214.jpg (500×667)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2297149.html

(0)
上一篇 2025年2月28日 03:32:33
下一篇 2025年2月26日 17:48:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论