OpenCV 提供了两个变换函数,cv2.warpAffine 和 cv2.warpPerspective,使用这两个函数你可以实现所有类型的变换。cv2.warpAffine 接收的参数是2 × 3 的变换矩阵,而 cv2.warpPerspective 接收的参数是 3 × 3 的变换矩阵。
下面介绍一下,通过warpAffine函数实现图像的旋转
import cv2
import numpy as np
img=cv2.imread(r'D:\02OpenCV\123.jpg',0)
rows,cols=img.shape
# 这里的第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子
# 可以通过设置旋转中心,缩放因子,以及窗口大小来防止旋转后超出边界的问题
m=cv2.getRotationMatrix2D((cols/2,rows/2),45,0.6)
dst=cv2.warpAffine(img,m,(2*cols,2*rows))
cv2.imshow('img',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果: