OpenCV学习笔记(15)使用OpenGL显示双目视觉三维重构效果

cmd_window

bm_3d_gl

sgbm_3d_gl

sgbm_fullDP_3d_gl

上一篇笔记中使用Matlab初步显示了双目视觉重构出的环境三维效果图,不过并没有加上纹理信息。在OpenCV中文论坛里,大象的帖子(http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=8722&sid=02986dcffb5ebcedf299833e7cbf457c)给出了利用OpenGL显示视差数据的三维点云图,这是一个学习OpenGL和OpenCV混合编程的好帖子,里面的讨论跟帖也很有参考意义,我下面的代码也是参考这个帖子的,感谢大象和论坛上的朋友们。在大象的帖子中,所显示的三维点云是基于视差图来绘制的,视差越大,点云就越靠近摄像机的近面,但要显示环境的三维重构数据,则还需结合摄像机定标和双目校正(cvStereoRectify)获得的参数来计算出三维坐标(cvReprojectImageTo3D);另一方面,要动态显示实时的三维重构数据,还需要用到一个 FreeGlut (http://freeglut.sourceforge.net/docs/api.php#WindowCallback)的函数库,因为原本的 glut 函数库的 glutMainLoop 在调用之后就不会返回、实现不了循环,而 FreeGlut 则有一个 glutMainLoopEvent 函数,每循环一次就会返回。下面结合着代码里分步讲述,主要参考来源包括:

[1] 大象帖子:http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=8722&sid=02986dcffb5ebcedf299833e7cbf457c

[2] 李颖 等. OpenGL函数与范例解析手册. 国防工业出版社, 2002年1月.

[3] Edward Angel 著. 段菲 译. OpenGL编程基础(第3版). 清华大学出版社, 2008年3月.

[4] Nehe 教程 Lesson 6:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06

[5] 博客“守护地下铁”:http://hi.baidu.com/shirdrn/blog/item/047ed30f94bbbc2d6059f318.html

[6] FreeGlut 主页:http://freeglut.sourceforge.net/index.php#download

 

一、FreeGlut的安装

(1)在 VC 的安装目录(例如 D:/Microsoft Visual Studio 9.0/VC)新建一个文件夹 freeglut;

(2)将下载的 FreeGlut (freeglut 2.6.0‑3 for MSVC)解压后,把 include 和 lib 文件夹复制到文件夹 freeglut,把 freeglut.dll 复制到系统文件夹 system32;

(3)在 VS2008 的 Tools –> Options 的 VC++ Directories 中加入 freeglut 的 include 和 lib 路径;

(4)在项目 Properties 的 Link –> input 中加入 opengl32.lib glu32.lib freeglut.lib;

  • 6
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 58
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值