Python中可以使用OpenCV庫來實現圖像的幾何變換。下面是一個簡單的例子,演示如何對圖像進行平移、旋轉和縮放等幾何變換:
import cv2
import numpy as np
# 讀取圖像
img = cv2.imread('image.jpg')
# 獲取圖像的高度和寬度
h, w = img.shape[:2]
# 定義平移矩陣,沿x軸平移100個像素,沿y軸平移50個像素
M_translate = np.float32([[1, 0, 100], [0, 1, 50]])
# 進行平移變換
img_translate = cv2.warpAffine(img, M_translate, (w, h))
# 定義旋轉矩陣,繞圖像中心逆時針旋轉30度
M_rotate = cv2.getRotationMatrix2D((w/2, h/2), 30, 1)
# 進行旋轉變換
img_rotate = cv2.warpAffine(img, M_rotate, (w, h))
# 定義縮放矩陣,x方向縮放為原來的0.5倍,y方向縮放為原來的1.5倍
M_scale = np.float32([[0.5, 0, 0], [0, 1.5, 0]])
# 進行縮放變換
img_scale = cv2.warpAffine(img, M_scale, (w, h))
# 顯示變換后的圖像
cv2.imshow('Translate Image', img_translate)
cv2.imshow('Rotate Image', img_rotate)
cv2.imshow('Scale Image', img_scale)
cv2.waitKey(0)
cv2.destroyAllWindows()
在這個例子中,首先讀取一張圖像,然后分別定義了平移、旋轉和縮放的變換矩陣,并利用cv2.warpAffine()
函數對圖像進行變換。最后使用cv2.imshow()
函數顯示變換后的圖像。