现在都9102年了,平时用的opencv版本都是2.4.9,配置过的最低版本也就是2.4.3了。最近在看一篇2012年的目标追踪的文章,里面提供的源代码的运行环境是vs2010+opencv2.4.2,为了跑起来文章中的源代码,于是开始配置opencv2.4.2,但是发现找到的opencv2.4.2不是编译过的exe安装包,所以需要自己根据源代码进行编译才能开始配置使用!
Microsoft Visual Studio 2010 这个不多说,只附一个csdn博客地址,有下载地址。
opencv2.4.2 参见这篇博客,可以去GitHub下载。
cmake 官网下载地址 ,我下载的是cmake3.12.4-win64
3.1 将下载的opencv2.4.2源代码压缩文件解压到D:/目录下;
3.2 将下载的cmake-3.12.4-win64-x64.zip解压,打开文件夹中的bin目录,再打开cmake-gui 应用程序
按照上面这个图来,第一个红箭头表示的是需要编译的opencv源代码所在的源文件;第二个红箭头表示生成文件所在的位置(这里我是也放在D:/盘目录下,如果你没有新建opencv这个目录那么系统会帮你创建,这个opencv文件夹在cmake这一步完成以后不要更改这个文件夹的名字,后面还要进入到这个目录用vs2010启动生成,后面会说明)
选好这两项以后,点击Configure,按照图中的来。Finish结束以后再点击Generate。cmake会对Opencv进行配置,生成opencv的解决方案。然后opencv目录下就有了sln。
进入到这个生成的opencv目录下,用vs2010打开OpenCV.sln
3.3 加载完以后,先右键ALL_BUILD生成,然后再右键INSTALL生成。
完成以后就会在opencv目录下出现install目录,这些就是最终开发程序用的dll,lib还有include了。
在完成以上步骤后,这个D:/盘目录下的opencv文件夹你可以移动到别的位置,也可以改名字,这就是相当于我们下载最新的opencv-x.x.x for winX64.exe版本之后解压所得的文件,下面就可以进行配置了!
说明:我把这个opencv文件夹改为了opencv-2.4.2,并且放在了D:/Program Files/目录下。
4.1 配置环境变量
4.2 包含头文件的配置
在vs2010里新建一个win32控制台空项目;打开属性管理器,在属性管理器中进行一次配置,就相当于进行了通用的配置过程,以后新建的工程就不用再额外的进行重新配置了。
在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(右键属性,或者双击)即可打开属性页面。
【通用属性】 ->【VC++目录】 ->【包含目录】中
添加上
D:\Program Files\opencv-2.4.2\install\include
D:\Program Files\opencv-2.4.2\install\include\opencv
D:\Program Files\opencv-2.4.2\install\include\opencv2
这三个目录。最好手动进行选择,这样不容易出错!
4.3 工程库lib目录的配置
通用属性】 ->【VC++目录】 ->【库目录】中,
添加上 D:\Program Files\opencv-2.4.2\install\lib
4.4 链接库的配置
通用属性】 ->【链接器】->【输入】->【附加的依赖项】
直接从这里粘贴上如下内容
opencv_videostab242d.lib
opencv_video242d.lib
opencv_ts242d.lib
opencv_stitching242d.lib
opencv_photo242d.lib
opencv_objdetect242d.lib
opencv_nonfree242d.lib
opencv_ml242d.lib
opencv_legacy242d.lib
opencv_imgproc242d.lib
opencv_highgui242d.lib
opencv_gpu242d.lib
opencv_flann242d.lib
opencv_features2d242d.lib
opencv_core242d.lib
opencv_contrib242d.lib
opencv_calib3d242d.lib
至此,所有配置都完成了,下面测试一下是否配置成功。
我们用lena的原图进行测试
在建的控制台应用程序空项目中,新建一个cpp文件,然后粘贴如下代码:
#include
#include
#include
using namespace cv;
int main()
{
// 读入一张图片(lena)
Mat img=imread("lena.jpg");
// 创建一个名为 "lena"窗口
namedWindow("lena");
// 在窗口中显示lena
imshow("lena",img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
}
将测试图片命名为lena.jpg,放到工程目录中;
点击运行,如果能顺利显示图片,表示测试成功。