射影变换、仿射变换、欧式变换、相似变换、等距变换

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

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倍。

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

原文地址:https://www.cnblogs.com/zealousness/p/9975248.html

时间: 2025-01-02 17:06:48

射影变换、仿射变换、欧式变换、相似变换、等距变换的相关文章

[C#绘图]全局变换和局部变换

全局变换是应用于由给定的 Graphics 对象绘制的每个项目的变换. 与此相反,局部变换则是应用于要绘制的特定项目的变换. 全局变换 若要创建全局变换,请构造 Graphics 对象,再操作其 Transform 属性. Transform 属性是 Matrix 对象,因此,它能够保存仿射变换的任何序列. 存储在 Transform 属性中的变换被称为世界变换. Graphics 类提供了几个构建复合世界变换的方法:MultiplyTransform.RotateTransform.Scale

为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换

写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在此向多位原创作者致敬!!! 一.傅立叶变换的由来 关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象,尽是一些让人看了就望而生畏的公式的罗列,让人很难能够从感性上得到理解,最近,我偶尔从网上看到一个关于数字信号处理的电子书籍,是一个叫Steven W. Smith, Ph.D.外国人写的,写得非常浅显,里面有七章由浅入深地专门讲述关于离散信号的傅

时域和频域变换之---傅立叶变换的意义

真是惭愧,学<数字信号处理>好长时间了,也记住了傅里叶变换的公式,也会做FFT程序了,但是居然不知道傅里叶变换的意义何在!真是该!! 还好,算是搞明白了.抛开数学上的意义不说,单说一下实际的一些意义吧.傅里叶变换是将信号从时域转换到频域,这样在时域上一些交叉在一起的.看不出来的信号的特性,在频域上就很明显的能看出来了.比如下图: Figure1,是a=0.4*sin(4*w*(x))的图形,Figure2,是b=1.6*cos(12*w*(x))的图形.这两个图形,在时间轴上,很容易看出来.但

傅立叶变换、拉普拉斯变换、Z变换之间 &lt;篇一&gt;

傅立叶变换.拉普拉斯变换.Z变换之间最本质的区别是什么? 简单的说:傅立叶变换就是将任一个函数展开成一系列正弦函数的形式,从而能够在频域进行频谱分析.而拉普拉斯变换是复频域,它的的引进主要是对微分方程起到了简便的变换作用,试想2阶的微分方程就够麻烦的了,高阶就别指望手动解了,数学系的牛人别见怪.所以拉式变换就将时域的微分方程变换成代数方程.而到了离散系统中,又出现了差分方程,因此人们就想既然连续系统中有拉式变换,那么是不是离散系统中也会有一个方法能够起到相同的简化作用呢?于是Z变化就提了出来.

傅立叶变换、拉普拉斯变换、Z变换之间 &lt;篇二&gt;

三大变换的意义? 傅里叶变换在物理学.数论.组合数学.信号处理.概率论.统计学.密码学.声学.光学.海洋学.结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量). 傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合.在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换. 傅里叶变换是一种解决问题的方法,一种工具,一种看待问题的角度.理解的关键是:一个连续的信号可以看

说文解字——傅里叶变换、拉普拉斯变换、Z变换 (上)

在开始了解这些变换之前,简单复习一下级数的概念: 级数的概念之所以重要,是因为我们现实生活中经常遇到一些不规则的函数,为了方便我们的研究,我们希望能有一种方法来用简单的多项式或者多个函数来近似表示这个函数,这就是我们研究级数的原因:任意一个函数都能用多项式逼近: 假定我们有一个函数f(x),他的曲线是不规则的,我们很难去探索这种曲线的性质,但是如果我们把这种曲线展开成f(x)=f(x0)+f′(x0)(x?x0)+.........,展开式中的函数式我们熟悉的,这样会更便于我们的分析.如果这个例

数学(论)里的一些定理(莫比乌斯反演,傅立叶变换,数论变换...)

莫比乌斯反演 莫比乌斯反演在数论中占有重要的地位,许多情况下能大大简化运算.那么我们先来认识莫比乌斯反演公式. 定理:和是定义在非负整数集合上的两个函数,并且满足条件,那么我们得到结论 在上面的公式中有一个函数,它的定义如下: (1)若,那么 (2)若,均为互异素数,那么 (3)其它情况下 对于函数,它有如下的常见性质: (1)对任意正整数有 (2)对任意正整数有 线性筛选求莫比乌斯反演函数代码. void Init() { memset(vis,0,sizeof(vis)); mu[1] =

[转]世界变换、观察变换、投影变换 矩阵

注:原方转自http://www.codinglabs.net/article_world_view_projection_matrix.aspx Introduction In this article we will try to understand in details one of the core mechanics of any 3D engine, the chain of matrix transformations that allows to represent a 3D

Quartz 2D - 5.变换(Transforms)

Quartz 2D 绘制模型定义了两种独立的坐标空间:用户空间(用于表现文档页)和设备空间(用于表现设备的本地分辨率).用户坐标空间用浮点数表示坐标,与设备空间的像素分辨率没有关系.当我们需要一个点或者显示文档时, Quartz会将用户空间坐标系统映射到设备空间坐标系统.因此,我们不需要重写应用程序或添加额外的代码来调整应用程序的输出以适应不同的设备. 我们可以通过操作CTM(current transformation matrix)来修改默认的用户空间.在创建图形上下文后,CTM是单位矩阵,