图像基础变换-仿射变换

前言

在图像处理中,我们经常需要对图像进行各种操作如平移、缩放、旋转、翻转等,这些其实都是图像的仿射变换。通过本篇文章,你能够

知道它们的实现原理以及如何应用它们。

仿射变换

仿射变换也称仿射投影,是指几何中,对一个向量空间进行线性变换并加上一个平移,变换为另一个向量空间。所以,仿射变换其实也就

是在讲如何来进行两个向量空间的变换。

假设有一个向量空间k

                                                                                       k = (x,y)

还有一个向量空间j

                                                                                              j = ({x}',{y}')

如果我们想要把向量空间k变换为向量空间j,可以通过下面的公式进行变换:

                                                                                             j = k*w+b

将上式拆分可得:

                                                                                    {x}' = w_{00}*x+w_{01}*y+b_{0}

                                                                                  {y}' = w_{10}*x+w_{11}*y+b_{1}

将上式转换为矩阵,可表示为:

                                                              \begin{bmatrix} {x}'\\ {y}' \end{bmatrix} = \begin{bmatrix} w_{00} & w_{01} \\ w_{10} & w_{11} \end{bmatrix} *\begin{bmatrix} {x}\\ {y} \end{bmatrix} + \begin{bmatrix} b_{0}\\b_{1} \end{bmatrix} = \begin{bmatrix} w_{00}& w_{01} & b_{0} \\ w_{10}& w_{11} & b_{1} \end{bmatrix} * \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} = M * \begin{bmatrix} x\\ y\\ 1 \end{bmatrix}

通过参数矩阵M就可以实现向量空间之间的变换,因此我们可以通过矩阵M就可以对图像实现平移翻转旋转缩放等仿射变换。

在opencv中,主要是通过warpAffine函数来实现仿射变换的。

  • src : 输入的图像数组
  • M  : 仿射变换矩阵
  • desize : 变换后的图像大小
  • flags : 使用的插值算法
  • borderValue :边界的填充值

图像平移

在平面坐标系上,有点p(x,y),想要将点 p(x,y)移动到 {p}'({x}',{y}'),则变换公式为:

                                                                                               {x}' = x+\Delta x

                                                                                              {y}' = y+\Delta y

将其转换为矩阵形式:

                                                                          \begin{bmatrix} {x}'\\ {y}' \end{bmatrix} = \begin{bmatrix} 1& 0 &\Delta x \\ 0& 1 & \Delta y \end{bmatrix} * \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} = M * \begin{bmatrix} x\\ y\\ 1 \end{bmatrix}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值