可以使用 OpenCV 的 cv2.getRotationMatrix2D() 函數來生成旋轉矩陣,然後使用 cv2.warpAffine() 函數將圖像旋轉。
import cv2
import numpy as np
# 讀取第一幅圖像
image = cv2.imread('image1.jpg')
import cv2
import numpy as np
def rotate_image(image, angle):
# 取得圖像的高度和寬度
(h, w) = image.shape[:2]
# 計算圖像的中心點
center = (w // 2, h // 2)
# 取得旋轉矩陣
M = cv2.getRotationMatrix2D(center, angle, 1.0)
# 旋轉圖像
rotated_image = cv2.warpAffine(image, M, (w, h))
return rotated_image
# 示例: 將圖像旋轉 90 度
rotated_image = rotate_image(image, 90)
# 顯示結果
cv2.imshow('image', image)
cv2.imshow('rotated_image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

請注意,旋轉角度是以逆時針方向為正的。例如,如果要將圖像逆時針旋轉 90 度,則角度值應設為 90。
此外,如果你想要在旋轉圖像時保留圖像的邊界,你可以使用 cv2.warpAffine() 函數的 borderValue參數來設置(255,255,255)。這樣會將旋轉後圖像的邊界填充為白色。
import cv2
import numpy as np
# 讀取第一幅圖像
image = cv2.imread('image1.jpg')
def rotate_image(image, angle):
# 取得圖像的高度和寬度
(h, w) = image.shape[:2]
# 計算圖像的中心點
center = (w // 2, h // 2)
# 取得旋轉矩陣,並在旋轉時保留圖像的邊界
M = cv2.getRotationMatrix2D(center, angle, 1.0)
# 旋轉圖像
rotated_image = cv2.warpAffine(image, M, (w, h), borderValue=(255,255,255))
return rotated_image
# 示例: 將圖像旋轉 90 度
rotated_image = rotate_image(image, 90)
# 顯示結果
cv2.imshow('image', image)
cv2.imshow('rotated_image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()