##VS2013中运行支持OpenGL的OpenCV工程
之前一直用Qt+OpenCV开发项目,而在VS中直接偷懒使用预编译的OpenCV进行开发,结果在使用OpenGL时提示”No OpenGL support”:
![](https://box.kancloud.cn/2015-12-30_5683a766e384e.jpg)
上网查了一下,原因很明显,是因为预编译好的library不支持OpenGL,因此需要使用cmake重新build工程。我的开发环境是:Win 8.1+VS2013+OpenCV 2.4.9。
> 从OpenCV2.4.2版本开始,OpenCV在可视化窗口中支持OpenGL,在highgui的模块中可找到接口。这使得OpenCV可以轻松渲染任何3D内容。但是OpenCV默认不启用OpenGL支持,因此需设置标志ENABLE_OPENGL=
> YES,(默认ENABLE_OPENGL = NO)。
在本次配置成功后,将演示在OpenCV的显示输出中嵌入OpenGL的3D物体。整个流程如下:
**一、生成OpenCV解决方案**
安装CMake并打开,在第一行“Where is the source code”后面的那个“Browse Source…”按钮,选择OpenCV的安装路径。我的Opencv2.0安装路径为E:/opencv/opencv/,这里需要选择source文件夹;点击第二行的“Browse Build…”按钮并选择生成的解决方案的路径。这里放置在E:/opencv/OpencvBuild文件夹中,设定完成后点击左下方的configure。
![](https://box.kancloud.cn/2015-12-30_5683a7670cf05.jpg)
在弹出的对话框中选择编译器版本Visual Studio 12(即Visual Studio 2013),点击Finish。
![](https://box.kancloud.cn/2015-12-30_5683a7672e022.jpg)
在下面的编译参数设置中找到WITH_OPENGL,打上勾,再次点击Configure。
![](https://box.kancloud.cn/2015-12-30_5683a76750dae.jpg)
再次点击Configure,完成后点击Generate,关闭CMake。至此编译前的配置工作全部完成。
![](https://box.kancloud.cn/2015-12-30_5683a7677d460.jpg)
**二、在VS中编译OpenCV**
用VS2013打开E:\opencv\OpencvBuild下的OpenCV.sln。在编译之前,确认解决方案平台为Debug|Win 32。右键点击项目ALL_BUILD,选择生成;完成之后找到CMakeTargets->INSTALL,再次选择生成。
![](https://box.kancloud.cn/2015-12-30_5683a767b3b4b.jpg)
等待生成完毕。若第一次选择的解决方案平台选择的是Debug 32位,则将解决方案配置改为Release,然后等待再次依次生成ALL_BUILD和INSTALL,至此OpenCV的编译工作完成。
(这里可能会出现编译的错误。根据网上的介绍,OpenGL在VS中是支持的,不需要安装,但若出现编译不通过的情况,可尝试在所有使用`<gl\gl.h>`头文件的地方前都添加`#include <windows.h>`)
**三、在VS中配置OpenCV**
这里用VS属性表的方式配置OpenCV工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。 属性管理器 -> 右键 “test”(工程名) -> 添加现有属性。
![](https://box.kancloud.cn/2015-12-30_5683a767d13fb.jpg)
修改项目属性表的名字后点击“添加”,即可在属性管理器中见到我们新建的属性表(这里取名为opencv)。
![](https://box.kancloud.cn/2015-12-30_5683a767ec5f7.jpg)
右键点击我们刚建立的属性表并点击“属性”,在弹出的窗口中点击“VC++目录”,点击右侧的“包含目录”,添加:E:\opencv\OpencvBuild\install\include
同样地,在“库目录”添加:E:\opencv\OpencvBuild\lib\Debug
![](https://box.kancloud.cn/2015-12-30_5683a76818666.jpg)
点开“链接器”->输入->附加依赖项,按照需要添加相应的库文件:
![](https://box.kancloud.cn/2015-12-30_5683a76856564.jpg)
用同样的方式,向“Release | Win32”属性中添加属性表,并对属性表进行以下配置:
在“包含目录”添加:E:\opencv\OpencvBuild\install\include
在“库目录”添加:E:\opencv\OpencvBuild\lib\Release
向“附加依赖项”添加:E:\opencv\OpencvBuild\install\include\Release下的库文件。
在VS完成以上配置后,剩下的最后一步是添加系统变量Path:E:\opencv\OpencvBuild\install\x86\vc12\bin;
**四、简单的演示**
至此所有关于OpenCV和OpenGL的配置均已完成,接下来就是试验以下用OpenCV建立OpenGL窗口,这里打开一个现实增强的工程,在属性管理器中Debug|Win32处右击,选择“添加现有属性表”,选择之前生成的opencv属性表(把属性表文件事先放到该工程文件夹中):
![](https://box.kancloud.cn/2015-12-30_5683a76895c26.jpg)
编译现实增强项目并生成可执行文件后,输入图像即可得到OpenGL渲染的3D绘图。
![](https://box.kancloud.cn/2015-12-30_5683a768bb64b.jpg)
![](https://box.kancloud.cn/2015-12-30_5683a7692096e.jpg)
- 前言
- Win8.1下OpenCV2.4.9+Qt5.3.2开发环境搭建
- OpenCV2学习笔记(一)
- OpenCV2学习笔记(二)
- OpenCV2学习笔记(三)
- OpenCV2学习笔记(四)
- OpenCV2学习笔记(五)
- OpenCV2学习笔记(六)
- OpenCV2学习笔记(七)
- OpenCV2学习笔记(八)
- OpenCV2学习笔记(九)
- OpenCV2学习笔记(十)
- OpenCV2学习笔记(十一)
- OpenCV2学习笔记(十二)
- OpenCV2学习笔记(十三)
- OpenCV2学习笔记(十四)
- OpenCV2学习笔记(十五)
- OpenCV2学习笔记(十六)
- OpenCV2学习笔记(十七)
- OpenCV2学习笔记(十八)
- OpenCV2学习笔记(十九)
- OpenCV2学习笔记(二十)
- OpenCV2学习笔记(二十一)
- OpenCV2学习笔记(二十二)