可以使用 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()