OpenCV是图像领域经常会用到的工具库函数的集合,有C/C++,Java和Python等语言的接口,并且适用于Windows,Linux,Mac OS桌面开发平台和Android 和IOS移动开发平台。目前已经出了1.x系列和2.x系列,3.0 Beta版也已经出了。OpenCV配置起来还是挺费事的,虽然网上已经有很多很全面也很有用的参考文章,我还是打算把自己配置的过程写下来,以后肯定还会配置这个东西,希望到时候有个方便的参考。
这篇文章记录在Windows平台上,如何安装OpenCV并且在Visual Studio 的C/C++开发环境中使用之。
我用的是Windows 7,Visual tudio 2012 Ultimate。
在opencv下载 页面上,下载想要安装的版本。据说3.x系列会修改较多的API名称等,所以建议下载比较新的版本。我下的是2.4.10。下载之后将文件解压。
解压后会看到看到两个文件夹:build
和source
,build
文件夹下面是已经编译好的库文件和可执行文件,而source
文件夹下面是未编译的源文件。我们在写程序时用到的是一些编译好的lib和dll文件,所以只要在程序中添加了头文件,调用了相应的函数,然程序运行时能找到相应的库文件(包括动态库文件即.dll
文件和静态库文件,即.lib
文件)就可以了。所以针对这个情况,大概做以下几个步骤就可以了。
添加环境变量是为了让程序在运行时能找到函数对应的动态链接库(dll
)。要注意的是,OpenCV对于32位程序和64位程序有不同的dll目录,并且对于不同的版本的VS,也有不同的dll文件目录。
在build
目录下,x86
下面包含了32位程序所需的dll
文件,x64
目录下面包含了64位程序所需dll
文件。在这个两个目录下,都有vc10
,vc11
,vc12
三个文件夹,分别是针对vs2010
,vs2012
和vs2013
。为了使32位程序和64位程序都能编写通过,我一般将两者目录下的和VS版本对应的文件夹下的bin
目录都加入PATH变量中。所以在PATH环境变量中增加如下内容:
;D:\program_file\opencv\build\x86\vc11\bin;D:\program_file\opencv\build\x64\vc11\bin
其中build前面的位置是我安装opencv的目录,安装位置不同前面部分也应改为相应的目录。
我们的目标是通过操作生成一个单独的OpenCV配置属性表,然后将其导出保存起来,将来在需要用到OpenCV的程序中,直接导入这个保存的属性表即可。 下面几步都是在VS开发环境里面进行。
Debug|win32
、Release|win32
、Debug|x64
、Release|x64
,基本步骤都类似,下面针对Debug|win32
来说。Debug|win32
文件夹上右击,选择添加新项目属性表,在弹出的对话框里,给这个表取名为OpenCV_Debug_32.props,然后点击添加。Debug|win32
模式,lib文件夹目录为:
D:\program_file\opencv\build\x86\vc11\lib
其中x86
目录表示是针对win32
的,vc11
表示是适用于VS2012
的。
Debug|win32
文件夹上右击,选择保存,该属性表就保存好了。整个配置过程就是这样了,配置好之后就可以安心的使用OpenCV 了!
最后,测试一下,做个图像处理的“Hello World”:
#include <iostream>
#include <string>
#include <opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("lena.jpg");
if (img.empty())
{
cout << "error";
return -1;
}
imshow("lena", img);
waitKey();
return 0;
}
出来的图像: