PIL(Python Imaging Library,圖像處理類庫) 提供了通用的圖像處理功能,以及大量有用的基本圖像操做,好比:打開顯示,灰度轉換,圖像縮放,旋轉,裁剪等。本文幷包含 PIL 全部功能模塊的講解,而是從實用角度給出最經常使用的方法。要獲取 PIL 全部功能模塊的文檔,可參考文末給出的連接。python
pip install Pillow
複製代碼
導入:git
from PIL import Image
複製代碼
image = Image.open("dog.jpeg")
複製代碼
image.show()
複製代碼
不會改變原來數據,所以須要定義新變量保存灰度化後的圖片數據。github
image_gray = image.convert("L")
複製代碼
會改變原來數據,但保存前,不會改變磁盤上的圖片。微信
width = 80
height = 80
size = (width, height)
image.thumbnail(size)
複製代碼
image_gray.save("dog_gray.jpeg")
image.save("dog_thumb.jpeg")
複製代碼
縮略圖方法 thumbnail(size)
的底層調用,不一樣的是,縮放不會改變原來數據。post
image_gray_resize = image_gray.resize((80, 80))
複製代碼
image_gray_rotate = image_gray.rotate(90)
複製代碼
image_gray_flip_h = image_gray.transpose(Image.FLIP_LEFT_RIGHT)
複製代碼
image_gray_flip_v = image_gray.transpose(Image.FLIP_TOP_BOTTOM)
複製代碼
雖然裁剪不屬於幾何變換的範疇,可是在應用場景上,咱們經常和 縮放,旋轉,鏡像等幾何變換,一塊兒用。例如,訓練 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