参考博文http://blog.csdn.net/jialeheyeshu/article/details/51137250
梳理一下环境配置的过程吧
我们主要解决三个问题:
1.OpenGL;
2.OpenCV2.4.9;
3.OpenGL+OpenCV2.4.9的Cmake打包;
那接下来我们先看看准备的东西:三件物品如上
因为配置过几次,OpenGL的环境包也一直有,没有的可以找度娘。
可以下载到的不说这个,同上。
VS默认编译器是32位,虽然我的电脑是64位,但是我使用了cmake-3.7.2-win32-x86.zip。这个包是gui操作界面,在bin里面。
上面准备环节做完,下面开始配置吧。个人感觉不是很难,配了好几次了。第一次是在学校同学帮配的,我看着他配的操作,自己在家还是又配置了一天,不过之后就好了吧。cmake第一次接触。
1.首先把东西放好位置,OpenCV安装,留下一个OpenCV文件;
2.打开cmake压缩包的gui运行程序
2.1 输入第一行:选择OpenCV文件里的source文件;输入第二行:准备建立OpenGL+OpenCV环境的文件夹,为存放路径,可以自己新建文件夹;
2.2 cmake,第一次点击Configue,等待,向下翻,勾选WITH_OPENGL选项;
2.3 第二次点击Generate,等待,这里生成了在VS中使用的格式为OpenCV.sln的一个解决方案(解决方案刚刚的新建文件夹里面,这是第二次点击后的变化);
3 打开OpenCV.sln
3.1 第一步,在解决方案处(68个项目处),右键后点击重新生成解决方案选项,等待;
3.2 第二步,在第三个文件下的INSTALL处,右键后点击生成选项,等待;这里产生了新的可以用的支持OpenGL的OpenCV的文件,分别为lib文件里的.lib和bin文件里的.dll;
4 我们要使用的新产生的.lib和.dll,网上教程会包含debug模式下的两种文件和release模式下的两种文件,模式代表你编译和运行代码的不同环境,不展开说明。我这里使用的是VS默认的Debug模式,单单用这个就行。
5 把产生的.lib和.dll文件覆盖到OpenCV文件(见步骤一)里面对应的.lib和.dll文件;
6 配置系统的环境变量C:\OpenCV\opencv\build\x86\vc12\bin\Debug,这一步的重要性不清楚,没出现问题,就沿着别人的步骤继续走。
放松点,下面的几个步骤就是步骤,出过的错大都是不细心造成的,这里没必要担心出错了回不去,我来会生成了好几遍,好几遍,苦乐在其中吧。
1.glut.lib和glut32.lib等这两个静态函数库复制到文件目录的lib文件夹下 X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
2.将glut.dll,glut32.dll等这两个动态库文件放到操作系统目录下面的C:\Windows\system32文件夹内(32位系统)或C:\Windows\SysWOW64(64位系统)。
3.将解压得到的头文件glut.h等复制到目录如下目录下:X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\GL
1.新建工程项目,空项目。一次性配置好环境方便以后不同项目使用,这里其实是配置了一张属性表,新建添加属性页表,再一一配置它的属性页面,配置属性→VC++目录
包含目录:
D:\opencv3.0\opencv\build\include
D:\opencv3.0\opencv\build\include\opencv
D:\opencv3.0\opencv\build\include\opencv2
库目录:
C:\OpenCV\opencv\build\x86\vc12\lib\Debug
2.配置属性→链接器→附加依赖项
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
opengl32.lib
glut.lib
glut32.lib
glu32.lib
glaux.lib
好了,就这些。网上的有debug和release两种模式的配置说明,这里给出的是debug模式。有差别,但刚开始的话,只配置debug也够你用的。
OpenGL+OpenCV测试代码:
#include<opencv2/opencv.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/core/core.hpp> #include<windows.h> #include<iostream> #include <gl/glu.h> using namespace std; using namespace cv; void onDraw(void* param) { // Draw something using OpenGL here glClear(GL_COLOR_BUFFER_BIT) ; glColor3f(1.0, 1.0, 1.0) ; glPointSize(5.0f); glBegin(GL_POINTS);//必须是加上s,要不然显示不了 //for(int i=0,j=0;i<10;i++,j++) //glVertex2f((GLfloat)i,(GLfloat)j); float start=0.0f; for(int i=0;i<30;i++) { start+=0.01; glVertex2f(start,start); } glEnd(); glFlush() ; } int main() { Mat mat=imread("1.jpg"); imshow("1",mat); string openGLWindowName = "OpenGL Test"; namedWindow(openGLWindowName, WINDOW_OPENGL); resizeWindow(openGLWindowName, 640, 480); setOpenGlContext(openGLWindowName); setOpenGlDrawCallback(openGLWindowName, onDraw, NULL); updateWindow(openGLWindowName); // when needed waitKey(0); return 0; }