在Python中,可以使用Pillow庫中的Image類來對圖像執行仿射變換。下面是一個簡單的示例代碼,演示如何對圖像進行平移、旋轉和縮放等仿射變換:
from PIL import Image
from PIL import ImageOps
from PIL import ImageFilter
import numpy as np
import matplotlib.pyplot as plt
# 打開圖像文件
image = Image.open("example.jpg")
# 定義仿射變換矩陣
matrix = [
1, 0, 100, # 水平平移100個像素
0, 1, 50 # 垂直平移50個像素
]
# 進行仿射變換
image_transformed = image.transform(image.size, Image.AFFINE, matrix)
# 顯示原始圖像和仿射變換后的圖像
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(image)
plt.title("Original Image")
plt.subplot(1, 2, 2)
plt.imshow(image_transformed)
plt.title("Transformed Image")
plt.show()
在這個示例中,首先使用Image.open()
打開一個圖像文件,然后定義一個仿射變換矩陣matrix
,其中前兩行表示縮放、旋轉和錯切,后兩行表示水平和豎直平移。最后使用image.transform()
函數對圖像進行仿射變換,并使用Matplotlib庫來顯示原始圖像和變換后的圖像。您可以根據需要修改仿射變換矩陣來實現不同的變換效果。