2D点:非齐次坐标x(x,y) (x表示向量矢量)

   齐次坐标:x~=(x~,y~,w~)=w~(x,y,1)=w~x~         增广矢量:x=(x,y,1)

w~=0时,齐次点称作理想点或无穷远点。

2D平移:

    非齐次坐标:x'=x+t  即 x'=[I t]x     I是2*2的单位矩阵

齐次坐标: x’=[I t; 0 1]x—       两个自由度t1,t2

2D平移保持方向一致。

2D旋转+平移:(2D刚体运动,2D欧式变换)

非齐次坐标:x'=Rx+t  即 x'=[R t]x     R是2*2的正交旋转矩阵,R=[cosθ -sinθ;sinθ cosθ] ,RRT=I, |R|=1

齐次坐标: x’=[R t; 0 1]x—       三个自由度t1,t2

2D欧式变换保持欧式距离,长度不变。

2D放缩旋转平移:

非齐次坐标:x'=sRx+t  即 x'=[sR t]x     R是2*2的正交旋转矩阵,R=[cosθ -sinθ;sinθ cosθ] ,RRT=I, |R|=1;

                      s是尺度因子(一个值),sR=[a -b; b a]

齐次坐标: x’=[sR t; 0 1]x—       四个自由度t1,t2,θ,s

2D相似变换保持直线间的夹角不变。

2D仿射变换:

齐次坐标: x’=Ax—    A 是2*3矩阵,A=[a00 a01 a02; a10 a11 a12]

在仿射变换下,平行线仍然保持平行。

2D投影变换:(透视变换或同态映射)

齐次坐标: x’=H— x—   H是任意的3*3齐次矩阵,也是非奇异矩阵,只相差在一个尺度量的情况下定义的。仅仅尺度量不同的两个H是等同的。

               H=[h1 h2 h3; h4 h5 h6; h7 h8 h9 ]

H的九个元素中有8个独立比率,因此一个投影变换有八个自由度。

自由度:当以样本的统计量来估计总体的参数时, 样本中独立或能自由变化的自变量的个数,称为该统计量的自由度。

投影变换保持直线性。

2D坐标变换的层次
变换 矩阵 自由度数 保持性质 图标
平移 [I|t]2*3 2 方向
刚氏 [R|t]2*3 3 长度
相似 [sR|t]2*3 4 夹角
仿射 [A]2*3 6 平行性 平行四边形
投影 [H-]3*3 8 直线性 梯形

        

2D几何变换的更多相关文章

  1. Numpy和OpenCV中的图像几何变换

    介绍 上面的图像使它不言而喻什么是几何变换.它是一种应用广泛的图像处理技术.例如,在计算机图形学中有一个简单的用例,用于在较小或较大的屏幕上显示图形内容时简单地重新缩放图形内容. 它也可以应用于扭曲一 ...

  2. 单图像三维重建、2D到3D风格迁移和3D DeepDream

    作者:Longway Date:2020-04-25 来源:单图像三维重建.2D到3D风格迁移和3D DeepDream 项目网址:http://hiroharu-kato.com/projects_ ...

  3. Waymo object detect 2D解决方案论文拓展

    FixMatch 半监督中的基础论文,自监督和模型一致性的代表作. Consistency regularization: 无监督学习的方式,数据\(A\)和经过数据增强的\(A\)计做\(A'\) ...

  4. 2D、3D形变

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Monaco; color: #a5b2b9 } span.Apple-tab-span { ...

  5. CSS 3学习——transform 2D转换

    首先声明一点,transform属性不为none的元素是它的定位子元素(绝对定位和固定定位)的包含块,而且对内创建一个新的层叠上下文. 注意:可以通过 transform-box 属性指定元素的那个盒 ...

  6. UWP简单示例(三):快速开发2D游戏引擎

    准备 IDE:VisualStudio 2015 Language:VB.NET/C# 图形API:Win2D MSDN教程:UWP游戏开发 游戏开发涉及哪些技术? 游戏开发是一门复杂的艺术,编码方面 ...

  7. 赠书:HTML5 Canvas 2d 编程必读的两本经典

    赠书:HTML5 Canvas 2d 编程必读的两本经典 这两年多一直在和HTML5 Canvas 打交道,也带领团队开发了世界首款基于HTML5 Canvas 的演示文档工具---AxeSlide( ...

  8. egret3D与2D混合开发,画布尺寸不一致的问题

    egret3d的GUI目前还没有,在做3d游戏的时候没有UI可用,只能使用egret2d的EUI组件库,egret3d与egret2d混合开发,canvas3d的大小与位置与canvas2d并没有重合 ...

  9. IOS 2D游戏开发框架 SpriteKit-->续(创建敌对精灵)

    这次包括之后讲的spritekit 我都会围绕一个案例来说,这个案例就是一个简单的2d飞机大战游戏,今天这里我讲创建敌对精灵,就是敌对飞机,敌对飞机不停的被刷新到屏幕上.....当然这里涉及到的类其实 ...

随机推荐

  1. springmvc 添加Junit4

    junit 单元测试的好处我就不赘述了,本文旨在介绍自己使用的一个方式: 1.添加依赖 <dependency> <groupId>junit</groupId> ...

  2. 利用SSH传输文件

    在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...

  3. HTML5 十大新特性(九)——Web Storage

    H5的webStorage技术一共提供了两个对象:window.sessionStorage和window.localStorage. 一.window.sessionStorage--会话级存储 存 ...

  4. 【转】 C++的精髓——虚函数

    虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原 ...

  5. Python正则式的基本用法

    Python正则式的基本用法 1.1基本规则 1.2重复 1.2.1最小匹配与精确匹配 1.3前向界定与后向界定 1.4组的基本知识 2.re模块的基本函数 2.1使用compile加速 2.2 ma ...

  6. pdf预览-js版本

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. css3实现颜色渐变以及兼容性处理

    有时我们会看到网站上的一些图片是渐变色的,这些图片有的是ui设计出来的,有的则是直接通过css3制作出来的.下面就讲一下css3实现渐变色的方法,以及在各个浏览器上的兼容性. CSS3 Gradien ...

  8. hashmap 的作用

    就是一个键值对应的集合HashMap a = new HashMap(); a.put("name", "abcdef"); // key是name,value ...

  9. spring设置全局异常处理器

    1.spring设置全局异常,它的原理是向上捕获 spring.xml配置 <!--自定义全局异常处理器--> <bean id="globalExceptionResol ...

  10. YY前端课1

    1. HTML页面主要由声明.头部.主体三部分构成. 2. 头部及其meta标签,以及主体的title标签很重要,对SEO.搜索优化等很重要. 3. 常用的charset编码格式有2种,一种是utf- ...