zoukankan      html  css  js  c++  java
  • 射影变换、仿射变换、欧式变换、相似变换、等距变换

    射影变换组成了一个群,这个群被称为射影变换群。仿射变换是射影变换的子群。欧式变换(旋转+平移+等比缩放)是仿射变换的子群。相似变换和等距变换则是欧式变换的子群。

     

    0.射影变换

    定义

    由有限次中心射影的积定义的两条直线间的一一对应变换称为一维射影变换。由有限次中心射影的积定义的两个平面之间的一一对应变换称为二维射影变换。

    性质——交比不变性

    如果平面上点场的点建立了一个一一对应,并且满足:
    (1)任何共线三点的象仍是共线三点;
    (2)共线四点的交比不变。
    则这个一一对应叫做点场的射影变换,简称射影变换。

    矩阵表示

    用H表示,H为3×3的可逆实矩阵,虽然有9个未知数,但只有8个自由度(只与具体比率有关),其中h31与h32不为0是它与仿射变换的本质区别,它使得仿射变换的非线性效应。可以把一个H分解为:H=SAP,其中S为相似变换,A为仿射变换,P为射影变换。变换前后共点,共线,交比,相切,拐点,切线的不连续性和岐点保持不变。

    注:n×n可逆实矩阵称为一般线性群GL(n),当把相差非零纯量因子的矩阵都视为等同时,便得到射影映射群,记为PL(n),在平面射影变换时为PL(3)。

    射影变换矩阵表示:

    H = {  h11, h12, h13

           h21, h22, h23

           h31, h32, h33  }

    其中当最后一行为(0,0,1)时的变换为仿射变换,在仿射的前提下,当左上角2×2矩阵正交时为欧式变换,左上角矩阵行列式为1时为定向欧式变换。

     

    1等距变换

    它相当于是平移变换和旋转变换的复合,用R表示变换矩阵,R为3×3矩阵,

         R={{r11,r12,tx},{r21,r22,ty},{0,0,1}}

    左上角2×2矩阵为旋转部分,tx和ty为平移因子,它有三个自由度,即旋转,x方向平移,y方向平移。等距变换前后长度,面积,线线之间的角度都不变。

     

    2.相似变换

    它相当于是等距变换和均匀缩放的一个复合,用S表示变换矩阵,S为3×3矩阵,

        S={{s*r11,s*r12,tx},{s*r21,s*r22,ty},{0,0,1}}

    左上角2×2矩阵为旋转部分,tx和ty为平移因子,它有4个自由度,即旋转,x方向平移,y方向平移和缩放因子s。相似变换前后长度比,夹角,虚圆点I,J保持不变(其实想到以前学的相似三角形的情况就行了)。

     

    3.仿射变换

    它相当于一个平移变换和一个非均匀变换的复合,用A矩阵表示,A为3×3矩阵,

    A={{a11,a12,tx},{a21,a22,ty},{0,0,1}}    其中A可以分解为:A=R(a)R(-b)DR(b),其中D={{c1,0},{0,c2}}

    左上角2×2矩阵为旋转部分,tx和ty为平移因子,它有6个自由度,即旋转4个,x方向平移,y方向平移。他能保持平行性,不能保持垂直性,Image中各部分变换前后面积比保持不变,共线线段或者平行线段的长度比保持不变,矢量的线性组合不变。面积被缩放了c1*c2=detA倍。

     

        

       总结:仿射变换位于射影变换和相似变换之间,仿射变换推广相似变换使得夹角不再保持不变,造成物体形状在变换后产生歪斜

  • 相关阅读:
    基于ZooKeeper和Thrift构建动态RPC调用
    菜鸡的Java笔记 api 文档
    菜鸡的Java笔记 第二十四
    菜鸡的Java笔记 第二十三
    菜鸡的Java笔记 第二十二
    菜鸡的Java笔记 实践
    Python 函数 参数传递
    python 函数的定义及调用语法,map 方法,函数嵌套递归
    java关键字
    菜鸡的Java笔记 第二十一 final 关键字
  • 原文地址:https://www.cnblogs.com/zealousness/p/9975248.html
Copyright © 2011-2022 走看看