图片模糊化
这篇文章会介绍使用 Python 的 Pillow 第三方函数库,实作四种将图片模糊化的方法。
- 本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
- 使用 Colab 操作需要连动 Google 云端硬盘,请参考:连动 Google Drive
安装 Pillow
输入下列指令安装 Pillow,根据个人环境使用 pip 或 pip3,如果使用 Colab 或 Anaconda Jupyter,已经内建 Pillow 函数库。
!pip install Pillow
BLUR
加载 Pillow 的 Image 和 ImageFilter 模组,使用 Image.open 方法打开图片后,就能套用 filter 的 ImageFilter.BLUR 滤镜,将图片进行基本的模糊化。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image, ImageFilter
img = Image.open('oxxostudio.jpg') # 開啟圖片
output = img.filter(ImageFilter.BLUR) # 套用基本模糊化
output.save('output.jpg')
# output.show() # Colab 不支援直接顯示,如果使用本機環境會開啟圖片檢視器
BoxBlur
除了基本的模糊化 BLUR 方法,也可以使用 ImageFilter.BoxBlur 滤镜,设定模糊化的半径,进行不同程度的模糊化效果。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image, ImageFilter
img = Image.open('oxxostudio.jpg')
output = img.filter(ImageFilter.BoxBlur(5)) # 套用 BoxBlur,設定模糊半徑為 5
output.save('output.jpg')
GaussianBlur
使用 ImageFilter.GaussianBlur 滤镜,设定高斯模糊的半径,进行不同程度的模糊化效果。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image, ImageFilter
img = Image.open('oxxostudio.jpg')
output = img.filter(ImageFilter.GaussianBlur(5)) # 套用 GaussianBlur,設定模糊半徑為 5
output.save('output.jpg')
UnsharpMask
除了上述几个模糊化的方法,也可以使用 ImageFilter.UnsharpMask 滤镜 ( 反锐利化 ),设定效果的的半径、效果百分比 ( percent ) 以及临界点 ( threshold ),就能进行不同程度的锐利化效果 ( 反之就是模糊 ),如果将效果百分比设为负值,就会出现模糊效果。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image, ImageFilter
img = Image.open('oxxostudio.jpg')
output = img.filter(ImageFilter.UnsharpMask(radius=5, percent=-100, threshold=3)) # 套用 UnsharpMask
output.show()
微信扫码关注
抖音扫码关注