在OpenCV中,可以使用cv2.warpAffine()函數來實現圖像的幾何變換,包括旋轉和平移。下面是一個簡單的示例代碼,演示如何使用OpenCV來實現圖像的旋轉和平移:
import cv2
import numpy as np
# 讀取圖像
image = cv2.imread('image.jpg')
# 獲取圖像的高度和寬度
height, width = image.shape[:2]
# 定義旋轉角度
angle = 45
# 定義平移距離
tx = width/4
ty = height/4
# 旋轉矩陣
rotation_matrix = cv2.getRotationMatrix2D((width/2, height/2), angle, 1)
# 平移矩陣
translation_matrix = np.float32([[1, 0, tx], [0, 1, ty]])
# 執行旋轉
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))
# 執行平移
translated_image = cv2.warpAffine(rotated_image, translation_matrix, (width, height))
# 顯示原始圖像和處理后的圖像
cv2.imshow('Original Image', image)
cv2.imshow('Transformed Image', translated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在這個示例中,我們首先讀取了一張圖像,然后定義了旋轉角度和平移距離。接著我們使用cv2.getRotationMatrix2D()函數來創建旋轉矩陣,然后使用cv2.warpAffine()函數來執行圖像的旋轉。接著我們創建平移矩陣,并再次使用cv2.warpAffine()函數來執行圖像的平移。最后我們顯示原始圖像和處理后的圖像。