Python Pillow - 概述



在當今的數字世界中,我們經常遇到大量的數字影像。如果我們使用Python程式語言,它提供了許多影像處理庫,可以為數字影像新增影像處理功能。

一些最常見的影像處理庫包括:OpenCVScikit-image、Pillow、Mahotas等等。但是,在本教程中,我們只關注Pillow庫,並將嘗試探索此模組的各種功能。

什麼是 Pillow?

Pillow 或者說 Python Imaging Library (PIL) 是由 Jeffrey A. Clark 及貢獻者開發的分支,是一個功能強大的 Python 庫,用於處理數字影像和影像處理。它建立在 Python 影像庫 (PIL) 之上,並提供了一系列用於處理影像的功能。它提供了廣泛的功能,用於以各種格式開啟、處理和儲存影像。Pillow 是在涉及影像處理、計算機視覺、Web 開發、圖形設計等應用中廣泛使用的工具。

Pillow 提供了廣泛的影像處理工具和函式,允許您執行以下任務:

  • 開啟和載入影像 - Pillow 允許我們開啟和載入各種格式的影像,以便進行處理。
  • 調整大小和縮放 - 我們可以將影像調整到特定尺寸,放大或縮小,以及生成縮圖。
  • 裁剪 - 影像裁剪涉及去除影像中不需要的部分,以關注特定區域。
  • 旋轉和翻轉 - 可以旋轉影像以校正方向或出於創意目的。我們還可以水平或垂直翻轉影像。
  • 顏色調整 - Pillow 提供了調整影像屬性的函式,包括亮度、對比度和色彩平衡。
  • 濾鏡和效果 - 影像濾鏡涉及應用模糊、銳化、邊緣檢測等濾鏡和各種效果,以增強或修改影像的外觀。
  • 文字和繪圖 - 我們可以向影像新增文字、形狀和繪圖,這對於註釋和標記很有用。
  • 顏色模式轉換 - Pillow 支援在不同的顏色模式(如 RGB、灰度和 CMYK)之間轉換影像。
  • 直方圖均衡化 - 這是一種透過重新分配畫素值來增強影像對比度的技術。
  • 影像濾鏡 - 我們可以將自定義卷積濾鏡應用於影像,從而實現高階影像處理操作。
  • 幾何變換 - Pillow 支援仿射變換和透視變換等幾何變換,用於校正影像變形等任務。
  • 合併和合成 - 我們可以合併多個影像或疊加影像以建立合成影像或視覺效果。
  • 元資料處理 - Pillow 允許我們訪問和修改影像元資料,例如 EXIF 和 ICC 配置檔案,這對於資料提取和管理很有用。
  • 資料訪問和分析 - 我們可以訪問和處理低級別的畫素資料,從而實現更高階的影像處理和分析任務。

為什麼選擇 Pillow?

Pillow 是 Python 中首選的影像處理工具,因為它:

  • 影像處理能力 - Pillow 提供了一套全面的影像處理工具,例如開啟、編輯、增強和儲存影像。它支援各種影像格式,使其能夠靈活地處理不同型別的影像資料。
  • 易於使用 - Python 作為一種高階程式語言,以其可讀性和簡單性而聞名。Pillow 繼承了這些特性,使開發人員即使在影像處理經驗很少的情況下也能輕鬆地處理影像。
  • 平臺獨立性 - Python 是平臺無關的,Pillow 也是如此。這意味著我們可以在不同的作業系統上使用 Pillow 來處理影像,而無需擔心相容性問題。
  • 豐富的文件 - Python 和 Pillow 擁有大量的文件、教程和支援性社群,這簡化了新手的學習曲線,併為經驗豐富的開發人員提供了豐富的資源。
  • 與其他庫的整合 - Python 可以將 Pillow 與其他流行的庫和框架(如NumPyOpenCV)無縫整合,以進行高階影像處理和計算機視覺任務。
  • 開源 - Python 和 Pillow 都是開源的,這意味著它們可以免費使用,並且由龐大的貢獻者社群不斷改進。

基本示例

這是一個基本的示例,可以幫助您開始使用 Pillow。

開啟和顯示影像

此示例演示如何在 Python Pillow 中開啟和顯示影像。

from PIL import Image

#Load an image
loaded_image = Image.open("Images/logo-w.png")

# Display the image
loaded_image.show()

輸出

overview_ex1

上述程式碼將從指定路徑載入影像,並使用系統上的預設影像檢視器顯示它。

廣告