圖片模糊化
這篇文章會介紹使用 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()
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~