前言
在图像处理中,我们经常需要对图像进行各种操作如平移、缩放、旋转、翻转等,这些其实都是图像的仿射变换
。通过本篇文章,你能够
知道它们的实现原理以及如何应用它们。
仿射变换
仿射变换
也称仿射投影
,是指几何中,对一个向量空间进行线性变换并加上一个平移,变换为另一个向量空间。所以,仿射变换其实也就
是在讲如何来进行两个向量空间的变换。
假设有一个向量空间:
还有一个向量空间:
如果我们想要把向量空间变换为向量空间
,可以通过下面的公式进行变换:
将上式拆分可得:
将上式转换为矩阵,可表示为:
通过参数矩阵M就可以实现向量空间之间的变换,因此我们可以通过矩阵M就可以对图像实现平移、翻转、旋转、缩放等仿射变换。
在opencv中,主要是通过warpAffine函数来实现仿射变换的。
- src : 输入的图像数组
- M : 仿射变换矩阵
- desize : 变换后的图像大小
- flags : 使用的插值算法
- borderValue :边界的填充值
图像平移
在平面坐标系上,有点,想要将点
移动到
,则变换公式为:
将其转换为矩阵形式: