OpenCV2学习笔记(十七)

最后更新于:2022-04-01 06:36:24

##VS2013中运行支持OpenGL的OpenCV工程 之前一直用Qt+OpenCV开发项目,而在VS中直接偷懒使用预编译的OpenCV进行开发,结果在使用OpenGL时提示”No OpenGL support”: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/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://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a7670cf05.jpg) 在弹出的对话框中选择编译器版本Visual Studio 12(即Visual Studio 2013),点击Finish。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a7672e022.jpg) 在下面的编译参数设置中找到WITH_OPENGL,打上勾,再次点击Configure。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a76750dae.jpg) 再次点击Configure,完成后点击Generate,关闭CMake。至此编译前的配置工作全部完成。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a7677d460.jpg) **二、在VS中编译OpenCV** 用VS2013打开E:\opencv\OpencvBuild下的OpenCV.sln。在编译之前,确认解决方案平台为Debug|Win 32。右键点击项目ALL_BUILD,选择生成;完成之后找到CMakeTargets->INSTALL,再次选择生成。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/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://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a767d13fb.jpg) 修改项目属性表的名字后点击“添加”,即可在属性管理器中见到我们新建的属性表(这里取名为opencv)。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a767ec5f7.jpg) 右键点击我们刚建立的属性表并点击“属性”,在弹出的窗口中点击“VC++目录”,点击右侧的“包含目录”,添加:E:\opencv\OpencvBuild\install\include 同样地,在“库目录”添加:E:\opencv\OpencvBuild\lib\Debug ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a76818666.jpg) 点开“链接器”->输入->附加依赖项,按照需要添加相应的库文件: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/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://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a76895c26.jpg) 编译现实增强项目并生成可执行文件后,输入图像即可得到OpenGL渲染的3D绘图。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a768bb64b.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-30_5683a7692096e.jpg)
';