使用OpenGL和OpenCV分别显示三维模型和图像

来源:互联网 发布:linux c 开源项目 编辑:程序博客网 时间:2024/05/21 16:22

本篇文章主要解决使用OpenGL和OpenCV无法同时显示三维模型和图像的问题。

 

使用glut工具包创建窗口并显示三维模型,使用OpenCV读取并显示图像,但是三维模型和图像不能同时显示,一次只能显示一个对象,只有关闭图像或三维模型,另一个才能显示。仔细查了一下代码,发现是事件响应的函数造成的。

使用OpenCV显示图像并调用cvWaitKey函数,等待按键事件。运行到该函数就不在往下运行,所以下面绘制三维模型的代码没有运行,就无法显示。屏蔽cvWaitKey函数,则图像和三维模型均可以显示。如果只是显示图像则必须要有这个函数,否则图像瞬间显示并关闭。

显示三维模型时也会有同样的问题,在初始化并设置各种回调函数后,调用glutMainLoop函数,运行到该函数就不在往下运行,如果下面有显示图像的代码,则无法运行,图像无法显示。

 

所以本文的解决方法是:首先显示图像,去掉cvWaitKey函数,然后显示三维模型,保留glutMainLoop函数,这样做的话,图像和三维模型均可以显示,各自的事件均可以响应。

摘自:http://blog.sina.com.cn/s/blog_40b056950100g6yd.html

原创粉丝点击