Python圖像處理入門:Pillow庫

pillowpython 中常用的圖像處理庫,適合實現裁剪、縮放、旋轉等基礎操作。安裝使用 pip install pillow 并導入 image 類即可開始操作,常見問題包括路徑錯誤和格式不支持。主要功能包括 resize() 調整尺寸、crop() 裁剪區域、rotate() 旋轉圖像、transpose() 翻轉圖像。顏色轉換可通過 convert() 方法實現,如轉灰度圖或去除透明通道。添加水印或文字需使用 imagedraw 和 imagefont 模塊,通過 draw.text() 繪制文字并指定字體、顏色和位置。 pillow 功能全面且易于上手,適合日常圖像處理需求。

Python圖像處理入門:Pillow庫

Pillow 是 python 中最常用的圖像處理庫之一,功能強大又簡單易用。如果你剛開始接觸圖像處理,或者只是想快速實現一些基本操作,比如裁剪、縮放、旋轉圖片,Pillow 基本都能滿足你的需求。

Python圖像處理入門:Pillow庫


安裝與基本使用

在使用 Pillow 之前,首先要確保它已經安裝好了。可以通過 pip 安裝:

Python圖像處理入門:Pillow庫

pip install pillow

安裝完成后,導入 PIL 模塊中的 Image 類,就可以開始操作圖像了。比如打開一張圖片只需要這樣:

立即學習Python免費學習筆記(深入)”;

from PIL import Image img = Image.open('example.jpg')

如果路徑沒問題,這段代碼就會加載圖片文件。你可以調用 .show() 方法預覽圖片,或者用 .save() 把修改后的圖片保存下來。

Python圖像處理入門:Pillow庫

常見問題:

  • 文件路徑寫錯會導致無法打開圖片
  • 不支持的格式也會報錯,Pillow 支持常見的 JPEG、PNG、GIF 等格式,但不包括某些專業格式如 PSD

圖像的基本操作

Pillow 提供了一些非常實用的基礎圖像處理方法,適合日常使用。以下是一些最常見的操作:

  • 調整尺寸:使用 resize() 方法可以改變圖像大小,參數是一個包含寬高的元組。
  • 裁剪圖像:用 crop() 方法傳入一個四元組(左、上、右、下)來指定裁剪區域。
  • 旋轉圖像:調用 rotate(angle) 可以按指定角度旋轉圖片,默認是逆時針方向。
  • 翻轉圖像:transpose(Image.FLIP_LEFT_RIGHT) 或 transpose(Image.FLIP_TOP_BOTTOM) 可以左右或上下翻轉。

舉個例子,如果你想把一張圖縮小一半并保存:

resized_img = img.resize((img.width // 2, img.height // 2)) resized_img.save('resized_example.jpg')

這些操作都很直觀,關鍵是理解每個函數的參數含義和使用方式。


圖像模式與顏色轉換

Pillow 支持多種圖像模式,比如 RGB(彩色)、L(灰度)、RGBA(帶透明通道)等。有時候你需要將圖像轉換成特定模式才能進行后續處理。

比如將圖片轉為黑白(灰度):

gray_img = img.convert('L') gray_img.save('gray_example.jpg')

這個操作常用于圖像識別前的預處理。還有一種情況是 PNG 圖片帶有透明通道(RGBA),而你希望去掉透明背景,可以轉成 RGB:

if img.mode == 'RGBA':     img = img.convert('RGB')

這部分操作雖然不是特別復雜,但容易被忽略,尤其是處理不同來源的圖片時。


添加水印和疊加文字

給圖片加水印或文字也是常見的需求。Pillow 的 ImageDraw 和 ImageFont 模塊可以實現這些功能。

基本步驟如下:

  1. 創建繪圖對象 draw = ImageDraw.Draw(img)
  2. 準備字體 font = ImageFont.truetype(“arial.ttf”, size=36)
  3. 使用 draw.text() 在指定位置繪制文字

示例代碼:

from PIL import ImageDraw, ImageFont  draw = ImageDraw.Draw(img) font = ImageFont.truetype("arial.ttf", 36) draw.text((10, 10), "Sample Watermark", fill=(255,255,255), font=font) img.save('watermarked.jpg')

注意幾點:

  • 如果沒有指定字體,系統可能會默認使用一種基礎字體,效果可能不太好
  • 文字顏色要用三元組表示(R, G, B)
  • 位置坐標是從左上角開始的像素值

基本上就這些內容了。Pillow 雖然是一個入門級的圖像處理工具,但它的功能已經足夠應對大多數日常任務。對于更復雜的圖像處理,比如濾波、邊緣檢測等,可以結合 numpyopencv 使用。不過對新手來說,先掌握 Pillow 是個不錯的選擇。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享