【AR】计算摄像头相对于探测到的标识的转换矩阵中的矩阵

在ARToolkit矩阵中的第四部就是计算摄像头相对于探测到的标识的转换矩阵,而矩阵对于我们而言,什么是矩阵?矩阵(Matrix)是一个按照长方阵列排列的复数实数集合,最早来自于方程组系数常数所构成的方阵

这是矩阵的定义,而在ARToolkit中,ARToolKit 提供了标识在摄像机的坐标系统中的位置,使用 opengl 矩阵系统计算出虚 拟物体的位置,矩阵被应用到摄像头中计算虚拟物体,实现了把虚拟物体投影按到标识卡上,其中摄像头是如何把虚拟物体的位置计算出来而又精确的投影到标识卡上呢?


主要参考于The Perspective Camera - An Interactive Tour. 作者还提供了可以交互的demo.

上述是关于摄像头的矩阵转换。而主要的矩阵转换时在openGL里面实现的,OPENGL里面包含了关于模型的平移,旋转,缩放,等函数。

在opengl中,视图和模型变换是在一个矩阵中进行控制的,这个矩阵就是GL_MODELVIEW_MATRIX,可以使用glGetFloatv函数来获取这个矩阵,而我们所要使用glTranslate*, glRotate*,glScale* 等操作均最后反映到这个矩阵的变化中,所以了解这个矩阵的构造对于灵活运用OpenGL比较重要。

变换矩阵在内存中的存放方式如下:
m[0] m[4] m[ 8] m[12]


m[1] m[5] m[ 9] m[13]


m[2] m[6] m[10] m[14]


m[3] m[7] m[11] m[15]


可以看出,OpenGL是以列序来存放这个矩阵的,位于矩阵上方的3*3矩阵是旋转矩阵,可以用来控制刚体的旋转和尺度变化,如下:

m[0] m[4] m[ 8] 

m[1] m[5] m[ 9]
m[2] m[6] m[10]

而右上角的3*1矩阵是用来控制刚体的平移的。就是m[12],m[13],m[14]这三个值,分别控制X,Y ,Z方向的平移。所有16个值组成一标准。

OpenGL中能直接取到的是ModelViewMatrix,此矩阵将模型坐标从模型坐标系转换到镜头坐标系,ModelViewMatrix的逆矩阵可以将镜头坐标系下的坐标转换到模型坐标系.

参考文章http://www.cnblogs.com/txwd0033/archive/2009/09/25/1574087.html
              http://www.cnitblog.com/linghuye/archive/2007/04/29/26402.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值