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

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

概述从一篇文章中看到,PIL1.1.5已经内置了高斯模糊,但是并没有在文档中提及,而且PIL的高斯模糊中radius是硬编码,虽然构造方法中有传入radius参数,但压根就没有用到(看这里),所以需要自己进行改造,当然,知道了原

从一篇文章中看到,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()

可以看下效果:

总结

以上是内存溢出为你收集整理的在Python中使用PIL模块图片进行高斯模糊处理的教程全部内容,希望文章能够帮你解决在Python中使用PIL模块对图片进行高斯模糊处理的教程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1202498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存