基于Opencv2.4.11+OpenGL(Qt5.6.0)实现增强现实(四)

本文介绍了如何基于OpenCV 2.4.11和OpenGL(Qt 5.6.0)实现增强现实。首先进行相机标定获取内参和畸变参数,然后通过解决PnP问题找到外部参数,利用solvePnP()函数处理图像,检测标记并提取坐标。由于坐标系差异,需要对OpenGL坐标进行调整。最后动态处理多个标记的MODELVIEW矩阵,并计算正确的投影矩阵,完成AR的3D渲染。
摘要由CSDN通过智能技术生成
坐标系的变换实现增强现实

在进行下一步之前需要对相机进行标定,这里网上有很多标定的方案,本文采用的是基于平面方格点的方式求得相机的内参与畸变参数。求解的最终方程如下


其中uv为物体在成像面上的坐标,Xw为物体在世界坐标系中的坐标,M1为相机的内部参数,M2为相机的外部参数会随着物体的位置或者相机的位置的变换而变化。通过标定可以求得相机的内部参数矩阵与畸变参数。如果我们反过来进行思考,如果内部参数已知,物体在成像面上的坐标已知,不防假设某一个方块标记的中心位置为s世界坐标系的原点,物体所在位置Z轴为0,如下图所示,那么上式中的u,v已知,M1Xw已知,即可求得M2即外部参数,从而可根据u,v确定特定物体的3D坐标,从而opengl就可以在特定位置实现3D物体的渲染,也就实现了增强现实的过程。也即每个标记对应一套坐标系,渲染的时候会以对应标记假定世界坐标系(x

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值