齐次坐标(Homogeneous coordinates)_齐次坐标系-程序员宅基地

技术标签: 图形学  图计算  三维重建相关知识  

为什么要引入齐次坐标?

  齐次坐标系的引入是为了将坐标的平移、旋转、缩放及透视投影等可表示为单一矩阵与向量相乘的一般向量运算。从而在进行图形处理时简单有效。如以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为
p ′ = m 1 ∗ p + m 2 p' = m_1*p+m_2 p=m1p+m2
m1旋转缩放矩阵, m2为平移矩阵, p为原向量 ,p’为变换后的向量;引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,表示为
p ′ = p ∗ M p' = p*M p=pM
它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。

什么是齐次坐标系?

  给定欧氏平面上的一点(x,y),对任意非零实数 Z,三元组(xZ,yZ,Z)即称之为该点的齐次坐标。依据定义,将齐次坐标内的数值乘上同一个非零实数,可得到同一点的另一组齐次坐标。
  例如一条通过原点(0, 0)的线之方程可写作nx+my= 0,其中 n 及 m 不能同时为 0。笛卡儿坐标可写作(m/Z, −n/Z),Z不为0。在齐次坐标下,则写成(m, −n,Z)。当 Z趋向0时,点的坐标会趋向于线的无线远处。因此,可定义(m, −n, 0)为对应nx+my= 0这条线之方向的无穷远点之齐次坐标。

齐次坐标系的性质

  • 投影平面上的任何点都可以表示成一三元组(X,Y,Z),称之为该点的’齐次坐标或投影坐标,其中 X、Y 及 Z 不全为 0。
  • 以齐次坐标表表示的点,若该坐标内的数值全乘上一相同非零实数,仍会表示该点。
  • 相反地,两个齐次坐标表示同一点,当且仅当其中一个齐次坐标可由另一个齐次坐标乘上一相同非零常数得取得。
  • 当 Z 不为 0,则该点表示欧氏平面上的该(X/Z,Y/Z)。
  • 当 Z 为 0,则该点表示一无穷远点。 注意,

三元组(0,0, 0)不表示任何点。原点表示为(0, 0, 1)。为与以与笛卡儿坐标相区别,如以冒号代替逗号,以 (x:y:z) 代替(x,y,z),以强调该坐标有着比例的性质。亦有以方括号代替括弧,以[x,y,z]来强调有多个坐标表示同一个点。有些作者则会同时使用冒号与方括号,如 [x:y:z]。

齐次坐标系的重要性
1、区分向量和点
  一个三维坐标的三个分量x,y,z用齐次坐标表示为变为x,y,z,w的四维空间,变换成三维坐标是方式是x/w,y/w,z/w,当w为0时,在数学上代表无穷远点,即并非一个具体的坐标位置,而是一个具有大小和方向的向量。从而,通过w我们就可以用同一系统表示两种不同的量。
  在OPENGL中,作为坐标点时,w参数为1,否则为0,如此一来,所有的几何变换和向量运算都可以用相同的矩阵乘积进行运算和变换,当一个向量和一个矩阵相乘时所得的结果也是向量。
2、易于进行仿射变化(Affine Transformation)
  仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。引入齐次坐标系,可以将一个仿射变换对应于一个矩阵和一个向量的乘法。

其中大部分内容参考百度百科,需要更加详细的内容可以看一下相关介绍!

Citations

https://baike.baidu.com/item/齐次坐标/511284?fr=aladdin#4
https://baike.baidu.com/item/仿射变换/4289056?fr=aladdin
https://blog.csdn.net/yun_0_yun_/article/details/67637162

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42145554/article/details/112619948

智能推荐

云计算及应用课程知识整理-程序员宅基地

文章浏览阅读1.2k次。文章目录一、云计算云计算概念云计算的服务类型云计算技术体系结构的层次及其功能为什么云计算成本低?二、GFS分布式的文件系统设计需要考虑哪些问题?GFS架构GFS容错机制三、MapReducemapReduce概念MapReduce适合什么类型数据?四、分布式锁服务Chubbychubby功能两阶段决议chubby基本架构五、分布式结构化数据表BigTable是什么架构BigTable中chubby的用途六、分布式存储系统Megastore实现机制融合SQL和noSQL局部索引和全局索引三种图三种副本七、大规

【SLAM】坐标系变换与外参标定-程序员宅基地

文章浏览阅读120次。突然发现学习文档有下面这句话:学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。——法布尔task02从二维坐标系开始推导坐标系变换参数,进而加入平移,加入Z轴拓展到三维坐标系的坐标转换方程。同时了解到相机外参对SLAM系统的作用,清楚外参标定常用到的软件。

HTML5游戏引擎Egret发布2.0版 开发工具亦获更新-程序员宅基地

文章浏览阅读62次。5月22日在北京国际会议中心举办的HTML5游戏生态大会上,白鹭时代旗下游戏引擎Egret Engine发布2.0版,同时还发布了Flash转换HTML5工具Egret Conversion、HTML5游戏加速Egret Runtime 2.0、GUI可视化编辑器Egret Wing 2.0、骨骼动画工具DragonBones4.0、富媒体移动开发框架Egret Lark1.0。\\以下是各引擎和...

Windows通过注册表修改计算机名_计算机名 注册表-程序员宅基地

文章浏览阅读507次。1.新建一个文本文件,将下面代码复制到文本保存,修改文件名后缀为.bat,之后以管理员方式运行。3.执行完毕后,重新打开cmd输入hostname可以看到修改成功。问题:打印系统变量COMPUTERNAME发现名称还是之前的。2.输入计算机名,并回车。_计算机名 注册表

ImageJ 插入插件和基本教程_imagej网页版-程序员宅基地

文章浏览阅读2.1w次,点赞5次,收藏27次。这里欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入标题写自定义目录标题)欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何_imagej网页版

InternalError: Dst tensor is not initialized. 的一种解决方法_ensor not initialized yet when tensor::type() is c-程序员宅基地

文章浏览阅读5.3k次。出现这种错误的一种情形如下图所示:InternalError出问题的语句就一句:acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})还有一种情形是ResourceExhaustError ,如下图所示图没有保存还有一种情形是不报错,可以正常执行!如下图所示:不报错的..._ensor not initialized yet when tensor::type() is called.\\n [hint: holder_ s

随便推点

linux执行du等待时间长,Linux_linux磁盘管理命令之:du命令解析,经过长时间的发展,linux磁盘 - phpStudy...-程序员宅基地

文章浏览阅读1.9k次。linux磁盘管理命令之:du命令解析经过长时间的发展,linux磁盘管理命令中df命令的使用,系统管理员想要知道df命令的功能,很多用户对多数linux磁盘管理命令也都有所了解,这里我发表一下个人理解,和大家讨论讨论一下du命令。磁盘配额:看完本文相信您能得到一个满意的答案。linux磁盘管理命令--dudu的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。功能:统计目录(或文..._du太慢

前端 用HTML,CSS, JS 写一个简易的音乐播放器_前端怎么实现音乐播放功能呢-程序员宅基地

文章浏览阅读2k次,点赞14次,收藏8次。这个实现了基本的播放/暂停、歌曲切换、音量控制、进度条控制和显示歌曲信息等功能,同时还支持播放模式切换和歌曲列表操作。这些功能的实现需要涉及到不同的技术和工具,如 AJAX、WebSocket、React、Node.js 等。如果你想要深入学习和掌握 Web 开发技术,可以选择相应的学习路径和教程进行学习。_前端怎么实现音乐播放功能呢

物联网平台通信层设计思考_物联网工程设计想法-程序员宅基地

文章浏览阅读770次。自2012年起到现在,在物联网这个行业已经打磨将近8年。时常会思考,这个行业当中碰到的主要问题在哪里,从工业时代到信息化时代,时代带给我们的又有哪些,是什么促使时代的变化。而物联网又是一个在互联网环境下,催生的一个产物。当有互联网的时候,物体之间怎么进行数据交换,达到某种目的。先阐述下物联网的基本概念:物联网(The Internet of Things,简称IOT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或_物联网工程设计想法

cisco端口聚合+windows service2012 NIC配置实例-程序员宅基地

文章浏览阅读534次。步骤:1、思科交换机的配置在特权模式下新建链路聚合channel 端口,并将端口加入Vlansw2960(config)#intport-channel 1(根据实际情况填写channel号)sw2960(config)#switchport access valn 20配置要加入链路聚合的端口interfaceG1/..._cisco channel mode win server

Linux常用命令-程序员宅基地

文章浏览阅读114次。Linux常用命令大全(持续补充)

推荐文章

热门文章

相关标签