圖像的幾何變換主要包括圖像翻轉(zhuǎn)、圖像旋轉(zhuǎn)和圖像變換操作,Image 類提供了處理這些操作的函數(shù) ?transpose()
?、?rotate()
? 和 ?transform()
?,下面分別對(duì)它們進(jìn)行講解。
該函數(shù)可以實(shí)現(xiàn)圖像的垂直、水平翻轉(zhuǎn),語法格式如下:
Image.transpose(method)
method 參數(shù)決定了圖片要如何翻轉(zhuǎn),參數(shù)值如下:
使用示例如下:
from PIL import Image
im = Image.open("./w3cschool.png")
#返回一個(gè)新的Image對(duì)象
im_out=im.transpose(Image.FLIP_LEFT_RIGHT)
im_out.show()
im_out.save("./水平翻轉(zhuǎn).png")
圖像顯示結(jié)果,如下所示:
圖1:圖像翻轉(zhuǎn)操作
當(dāng)我們想把圖像旋轉(zhuǎn)任意角度時(shí),可以使用 ?rotate()
?函數(shù),語法格式如下:
Image.rotate(angle, resample=PIL.Image.NEAREST, expand=None, center=None, translate=None, fillcolor=None)
參數(shù)說明如下:
使用示例如下:
from PIL import Image
im = Image.open("./w3cschool.png")
#translate的參數(shù)值可以為負(fù)數(shù),并將旋轉(zhuǎn)圖之外的區(qū)域填充為綠色
#返回同一個(gè)新的Image對(duì)象
im_out=im.rotate(45,translate=(0,-25),fillcolor="green")
im_out.show()
im_out.save("./旋轉(zhuǎn)圖像.png")
輸出結(jié)果:
圖2:圖像旋轉(zhuǎn)
該函數(shù)能夠?qū)D像進(jìn)行變換操作,通過指定的變換方式,產(chǎn)生一張規(guī)定大小的新圖像,語法格式如下:
Image.transform(size, method, data=None, resample=0)
參數(shù)說明:
使用示例如下:
from PIL import Image
im = Image.open("./w3cschool.png")
#設(shè)置圖像大小250*250,并根據(jù)data的數(shù)據(jù)截取原圖像的區(qū)域,生成新的圖像
im_out=im.transform((250,250),Image.EXTENT,data=[0,0,30 + im.width//4,im.height//3])
im_out.show()
im_out.save("./變換.png")
輸出圖像顯示如下:
圖3:圖像矩形變換
更多建議: