天天看點

python pillow圖像處理功能及應用

作者:運維木子李

Pillow是一個流行的Python圖像處理庫,它提供了豐富的功能和易于使用的API,用于處理圖像的各種操作,包括打開、儲存、調整尺寸、旋轉、濾鏡、顔色調整等。以下是Pillow庫的一些主要功能:

  • 打開和儲存圖像:Pillow可用于打開和儲存多種圖像格式,如JPEG、PNG、BMP等。可以使用Image.open()函數打開圖像,并使用Image.save()函數儲存圖像。
  • 圖像處理和調整:Pillow提供了多種圖像處理和調整功能,如調整圖像尺寸、旋轉、裁剪、調整亮度、對比度、飽和度等。這些功能可以通過使用resize()、rotate()、crop()、ImageEnhance等類和函數來實作。
  • 濾鏡和特效:Pillow支援應用各種濾鏡和特效來改變圖像的外觀和風格。例如,可以使用ImageFilter子產品中的濾鏡函數,如高斯模糊、邊緣檢測、銳化等。
  • 顔色調整:Pillow提供了豐富的顔色調整功能,如改變圖像的色彩平衡、對比度、飽和度等。可以使用ImageEnhance子產品中的類和函數,如Brightness()、Contrast()、Color()等。
  • 繪制和文本:Pillow允許在圖像上繪制各種形狀、線條和文本。可以使用ImageDraw子產品中的類和函數,如Draw()、line()、rectangle()、text()等。
  • 圖像合成和通道操作:Pillow支援圖像合成和通道操作,例如将多個圖像合并為一個、分離和合并圖像的通道等。可以使用Image類中的blend()、split()、merge()等方法來實作。
  • 像素級操作:Pillow允許對圖像的每個像素進行操作,如擷取像素值、修改像素值等。可以使用load()函數來加載圖像資料,然後使用putpixel()和getpixel()方法來通路和修改像素。

Pillow庫是一個功能強大且易于使用的圖像處理庫,适用于各種應用場景,包括圖像處理、計算機視覺、機器學習等。

下面是一些實際工業應用案例,展示了Pillow庫在圖像處理方面的功能:

  • 批量圖像處理:在電子商務行業中,經常需要對大量商品圖像進行處理,例如調整尺寸、裁剪、添加水印等。使用Pillow庫可以輕松實作批量圖像處理,提高工作效率。
  • 圖像壓縮:在網絡傳輸或存儲圖像時,通常需要對圖像進行壓縮以減小檔案大小。Pillow庫提供了各種圖像壓縮算法,如JPEG壓縮和PNG壓縮,使得圖像壓縮變得簡單和高效。
  • 圖像增強:在印刷和廣告行業中,使用Pillow庫進行圖像增強是常見的應用之一。例如,可以使用調整亮度、對比度、飽和度等參數來改善圖像的視覺效果和品質。
  • 圖像合成:在遊戲開發和虛拟現實領域中,使用Pillow庫進行圖像合成是常見的應用之一。例如,可以将多個圖像合成為一個新的圖像,以建立虛拟場景或特效。
  • 圖像識别:在自動化生産和品質控制中,使用Pillow庫進行圖像識别是常見的應用之一。例如,可以使用模式識别和圖像比對算法,對産品進行自動檢測和分類。

縮放圖像:

from PIL import Image

# 打開圖像
image = Image.open('input_image.jpg')

# 縮放圖像
new_image = image.resize((800, 600))

# 儲存縮放後的圖像
new_image.save('output_image.jpg')           

圖像旋轉:

from PIL import Image

# 打開圖像
image = Image.open('input_image.jpg')

# 旋轉圖像
rotated_image = image.rotate(45)

# 儲存旋轉後的圖像
rotated_image.save('output_image.jpg')           

添加水印:

from PIL import Image, ImageDraw, ImageFont

# 打開圖像
image = Image.open('input_image.jpg')

# 建立水印
watermark = Image.new('RGBA', image.size, (0, 0, 0, 0))
draw = ImageDraw.Draw(watermark)
font = ImageFont.truetype('arial.ttf', 50)
draw.text((10, 10), 'Watermark', font=font)

# 添加水印到圖像
watermarked_image = Image.alpha_composite(image.convert('RGBA'), watermark)

# 儲存帶有水印的圖像
watermarked_image.save('output_image.jpg')           

圖像濾波:

from PIL import Image, ImageFilter

# 打開圖像
image = Image.open('input_image.jpg')

# 應用高斯模糊濾波
blurred_image = image.filter(ImageFilter.GaussianBlur(radius=5))

# 儲存濾波後的圖像
blurred_image.save('output_image.jpg')           

圖像色彩調整:

from PIL import Image, ImageEnhance

# 打開圖像
image = Image.open('input_image.jpg')

# 調整亮度
enhancer = ImageEnhance.Brightness(image)
brightened_image = enhancer.enhance(1.5)

# 調整對比度
enhancer = ImageEnhance.Contrast(brightened_image)
contrasted_image = enhancer.enhance(1.2)

# 儲存調整後的圖像
contrasted_image.save('output_image.jpg')           

這些示例展示了Pillow庫在工業應用中的一些功能和應用案例。根據實際需求,你可以根據這些示例進行修改和擴充,以滿足具體的圖像處理需求。