定义
- cv2.warpAffine(img,matrix,size)
- cv2.getRotationMatrix2D(corner,angle,scale)
用法
函数作用 | 仿射变换 |
ima | 输入图像 |
matrix | 由cv2.getRotationMatrix2D()获得 |
size | 输出图像的大小,格式为(宽(列),高(行)) |
函数作用 | 用于构建旋转矩阵matrix |
corner | 旋转中心 |
angel | 旋转角度 |
scale | 旋转后的缩放因子 |
补充
平移
如果想要沿(x,y)方向移动,移动的距离为(tx,ty)可以以下面方式构建移动矩阵。 可以使用Numpy数组构建矩阵,数据类型是np.float32,然后传给函数cv2.warpAffine()
旋转
对一个图像旋转角度θ,需要使用下面的旋转矩阵。
![](https://i-blog.csdnimg.cn/blog_migrate/4d9ab66937ceea9015fb634f591e2078.png)
但OpenCVC允许在任意地方进行旋转,所以矩阵应该为
其中α = scale · cos θ ,旋转矩阵由cv2.getRotationMatrix2D()函数构建
示例
import cv2
img = cv2.imread('D:/3.png',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()