python 圖像處理類庫 PIL (一)

PIL(Python Imaging Library,圖像處理類庫) 提供了通用的圖像處理功能,以及大量有用的基本圖像操做,好比:打開顯示,灰度轉換,圖像縮放,旋轉,裁剪等。本文幷包含 PIL 全部功能模塊的講解,而是從實用角度給出最經常使用的方法。要獲取 PIL 全部功能模塊的文檔,可參考文末給出的連接。python

1. 安裝

pip install Pillow
複製代碼

導入:git

from PIL import Image
複製代碼

2. 基本使用

2.1 打開圖片

image = Image.open("dog.jpeg")
複製代碼

2.2 顯示圖片

image.show()
複製代碼

dog.jpeg 可將此圖保存到電腦,以運行本文的代碼

2.3 灰度變換

不會改變原來數據,所以須要定義新變量保存灰度化後的圖片數據。github

image_gray = image.convert("L")
複製代碼

2.4 縮略圖

改變原來數據,但保存前,不會改變磁盤上的圖片。微信

width = 80
height = 80
size = (width, height)
image.thumbnail(size)
複製代碼

2.5 保存圖片

image_gray.save("dog_gray.jpeg")
image.save("dog_thumb.jpeg")
複製代碼

3. 幾何變換

3.1 縮放

縮略圖方法 thumbnail(size) 的底層調用,不一樣的是,縮放不會改變原來數據。post

image_gray_resize = image_gray.resize((80, 80))
複製代碼

3.2 旋轉

image_gray_rotate = image_gray.rotate(90)
複製代碼

3.3 翻轉(鏡像)

3.3.1 水平翻轉

image_gray_flip_h = image_gray.transpose(Image.FLIP_LEFT_RIGHT)
複製代碼

3.3.2 垂直翻轉

image_gray_flip_v = image_gray.transpose(Image.FLIP_TOP_BOTTOM)
複製代碼

3.4 裁剪

雖然裁剪不屬於幾何變換的範疇,可是在應用場景上,咱們經常和 縮放,旋轉,鏡像等幾何變換,一塊兒用。例如,訓練 CNN 圖像分類,對有限的訓練集數據進行擴充加強,以提升模型的範化能力,得到更佳的模型表現。網站

img = Image.open("dog.jpeg")

print("origin image size\nwidth: {}\nheight: {}".format(*img.size))

crop_box = (80, 80, 240, 240)

img_crop = img.crop(crop_box)

print("cropped image size\nwidth: {}\nheight: {}".format(*img_crop.size))

img_crop.save("dog_crop.jpeg")
複製代碼
origin image size
width: 320
height: 320
cropped image size
width: 160
height: 160
複製代碼

傳送門

參考


堅持寫專欄不易,若是以爲本文對你有幫助,記得點個贊。感謝支持!spa


微信掃描二維碼 獲取最新技術原創3d

相關文章
相關標籤/搜索