查看原文
其他

Python日课-3.1-pillow滤镜初识

曾嵘 曾嵘胡扯的地方 2023-08-11

曾老师的 Python 课(链接可点击) 第一课的所有内容已经全部发布,包括课程 PPT、课程视频都可以免费获取,可以使用微信扫描下面的二维码进群获取。

这套课程有两条教学线:

  1. 现场教学,约两周一次,每次一小时,主要为实际案例的讲解。

  2. 微信群教学,每日一次,由易到难讲解 Python 知识点,Python 相关的小故事,业界八卦,IT 行业最新信息。




Python 日课 2021-01-18:Pillow 滤镜初识

各位同学大家好哇,今天周一,我们的 Python 课堂又来啦。

在上周三的课程 Python日课-2.4-pip的使用 中,我们安装了 pillow 库,今天我们就来看看 pillow 能干点啥。

pillow 是一个开源的图像处理库,虽然是一个外部库,但它已经成为了 Python 事实上的图像处理标准。Pillow 的官网在这里:

https://pillow.readthedocs.io/en/stable/

如果你更喜欢看中文文档的话,可以参考这里:

https://pillow-cn.readthedocs.io/zh_CN/latest/

我们使用最新的 Pillow 8.1 来做讲解,中文文档是基于 Pillow 2.4 翻译的。

完成今天的课程,曾老师准备了两张图片:


图像 2: 前台.jpg


图像 3: 餐厅.jpg


没错,这两张图片就是 SAGI GAMES (https://sagigames.cn)现场用手机拍摄的。

为了方便讲述,我们所有的代码均位于 pycourse 文件夹中,这两张照片位于 pycourse/assets/ 文件夹中,结构如下:

图像 4: pycourse 文件夹结构


pillow1.py 文件的作用是将 「餐厅.jpg」进行高斯模糊处理,处理后的文件名为「餐厅_高斯模糊_10.jpg」。

图像 5: 餐厅_高斯模糊_10.jpg


pillow2.py 文件的作用是将「前台.jpg」进行模式滤镜处理,处理后的文件名为「前台_模式_10.jpg」。

图像 6: 前台_模式_10.jpg


pillow1.py 的内容如下:

# 曾老师的 Python 课# 课程地址:https://blog.zengrong.net/tag/pythoncouse/# 课程内容:2021-01-18 pillow 高斯模糊滤镜# 高斯模糊滤镜文档:https://pillow.readthedocs.io/en/4.1.x/reference/ImageFilter.html#PIL.ImageFilter.GaussianBlur
from pathlib import Pathfrom PIL import Imagefrom PIL.ImageFilter import GaussianBlur
# 当前文件所在文件夹basedir = Path(__file__).parent
# 原始图像文件sfile = basedir.joinpath('assets/餐厅.jpg')# 目标图像文件tfile = basedir.joinpath('assets/餐厅_高斯模糊_10.jpg')
# 创建一个高斯模糊滤镜对象,模糊半径为 10gb = GaussianBlur(radius=10)
# 打开原始图像simg = Image.open(sfile)# 对原始图像文件使用滤镜,返回一个目标图像timg = simg.filter(gb)
# 将应用过滤镜的图像文件保存到目标图像文件中timg.save(tfile)

pillow2.py 的内容如下:

# 曾老师的 Python 课# 课程地址:https://blog.zengrong.net/tag/pythoncouse/# 课程内容:2021-01-18 pillow 模式滤镜# 模式滤镜文档:https://pillow.readthedocs.io/en/4.1.x/reference/ImageFilter.html#PIL.ImageFilter.ModeFilter
from pathlib import Pathfrom PIL import Imagefrom PIL.ImageFilter import ModeFilter
# 当前文件所在文件夹basedir = Path(__file__).parent
# 原始图像文件sfile = basedir.joinpath('assets/前台.jpg')# 目标图像文件tfile = basedir.joinpath('assets/前台_模式_10.jpg')
# 创建一个模式滤镜对象,size 为 10gb = ModeFilter(size=10)
# 打开原始图像simg = Image.open(sfile)# 对原始图像文件使用滤镜,返回一个目标图像timg = simg.filter(gb)
# 将应用过滤镜的图像文件保存到目标图像文件中timg.save(tfile)

分别执行:

python pillow1.py python pillow2.py

就可以使用滤镜生成新的图像啦!生成的图像位于 pycourse/assets/ 文件夹中。

今天的课程就到这里啦,欢迎大家到群里讨论。

请点击「阅读原文」下载源码附件。

没事找曾嵘胡扯一下


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存