• 变换模型——仿射变换和透射变换


    仿射变换是投射变换的一个特例

    仿射变换:6参数

    投射变换:8参数

    仿射变换:包括线性变换(旋转、剪切、缩放)及平移;特点:平行的线变换后依然保持平行。任意的仿射变换都能表示为乘一个矩阵(线性变换),再加一个向量 (平移) 的形式. 

    透射变换:利用透视中心、像点、目标点三点共线原理,从一个平面投影到另一个视平面。特点:投影变换后的线不一定保持平行,对图形的扭曲能力更强。也被称为投影变换共线性单应性

    一、仿射变换

    1、概念

           仿射变换(Affine Transformation)是空间直角坐标系的变换,从一个二维坐标变换到另一个二维坐标,仿射变换是一个线性变换,他保持了图像的“平行性”和“平直性”,即图像中原来的直线和平行线,变换后仍然保持原来的直线和平行线,仿射变换比较常用的特殊变换有平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。

           

    图1.仿射变换

         2、仿射变换的变换公式推导

          

            在opencv提供的仿射变换中,变换的公式是一个2*3的矩阵,如下:

        A是仿射变换2*3矩阵,M是2*2矩阵,表示坐标轴的旋转和缩放,B是2*1矩阵,是坐标轴平移矩阵。

        坐标变换如下:

        可以看出,A矩阵只有6个参数,所以只要知道3个点之间的仿射变换,就可以求出A矩阵。

    二、透视变换

     透视变换(Perspective Transformation)是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。

    图2.透视变换

    透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。通用的变换公式为:

    u,v是原始图片左边,对应得到变换后的图片坐标x,y,其中
    变换矩阵可以拆成4部分,表示线性变换,比如scaling,shearing和ratotion。用于平移,产生透视变换。所以可以理解成仿射等是透视变换的特殊形式。经过透视变换之后的图片通常不是平行四边形(除非映射视平面和原来平面平行的情况)。

    重写之前的变换公式可以得到:

    所以,已知变换对应的几个点就可以求取变换公式。反之,特定的变换公式也能新的变换后的图片。简单的看一个正方形到四边形的变换:
    变换的4组对应点可以表示成:

    根据变换公式得到:

    定义几个辅助变量:

    都为0时变换平面与原来是平行的,可以得到:

    不为0时,得到:

    求解出的变换矩阵就可以将一个正方形变换到四边形。反之,四边形变换到正方形也是一样的。于是,我们通过两次变换:四边形变换到正方形+正方形变换到四边形就可以将任意一个四边形变换到另一个四边形。

    所以,我们可以发现仿射变换就是特殊的透射变换,这里我们在理解它们的变换矩阵时一定要将矩阵分部分析,比如之前的一部分是用来旋转和缩放,一部分是用来平移,还有一部分是用来透射;

    之前的(x , y , w)中,w的意义我觉得它就是指投影点到面上的“距离”,这里之所以打引号我个人认为它不是物理距离,更多的带有一种数学上的“单位1”的意义;

    两者异同

    所以对于仿射变换,一般地w = w' , 也就是依然是这个平面,所以就相当于一个2D平面变换(忽略了投影点);

    对于透射变换,一般的w' = f(w) , f即相应的透射变换,所以这里就是投影点通过这个面投射到另一个承影面,这里投影点就显示了它的功能,所以我们说仿射变换是特殊的透射变换;

    OpenCV还提供了getPerspectiveTransform()函数及findHomography()的函数两个函数寻找变换公式,前者用点来找,后者直接用透视平面来找变换公式。

  • 相关阅读:
    关于android表单多字段布局的一些思考
    thrift 试用
    关于带角度的箭头
    同步和异步
    storm各组件基本概念
    AWK使用实例
    Hotspot虚拟机目录结构
    大数据生态
    代码生成器 架构提取工具tqdemo
    [源码]C# to SQL 的翻译器.net 1.1版
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725143.html
Copyright © 2020-2023  润新知