今天安装了一下opencv,用于后续的图片数据处理,主要参考博文http://blog.csdn.net/SherryD/article/details/51734334
一、解压与环境路径
首先从官网下载最新的2.4.13,直接打开exe文件,实际上就是一个简单的解压,我解压的目录是D:\Application\opencv
解压完成之后,和java类似,需要让系统知道你的库文件在哪,所以打开系统环境变量,在PATH里面添加D:\Application\opencv\build\x86\vc12\bin,然后再在用户变量里加入opencv自己的变量:
opencv(变量名) D:\Application\opencv\build(路径)
这里需要注意,
不能使用64位的库,因为编译都是使用32位编译;如果选用X64,则程序运行时候会出错。
二、VS2013中的配置
系统设置完之后,根据现在能查到的资料,都说每新建一个工程,都需要重新在工程属性里配置一次opencv的参数,好吧........先这么用,如果以后发现快捷方法再补上。
对于一个需要用opencv的工程,右键解决方法里的工程名(VS2013的做法,其他版本有细微差别),选择属性,再打开VC++目录,在包含目录和库目录两项添加如下内容:
包含目录:
D:\opencv2_4_13\opencv\build\include
D:\opencv2_4_13\opencv\build\include\opencv
D:\opencv2_4_13\opencv\build\include\opencv2
库目录:
D:\opencv2_4_13\opencv\build\x86\vc12\lib(因为系统设置里用的是32位,所以这里也只能用32位,如之前所言,用64位则会报错)
因为VS2013的工程分为调试版(debug)和发行版(release),默认是debug,所以需要点击左上方的配置,切换到发行版:
最后打开链接器,选择输入,在附加依赖项里面添加如下内容:
Debug版本:
opencv_ml2413d.lib
opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_objdetect2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_nonfree2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_videostab2413d.lib
Release版本:
opencv_objdetect2413.lib
opencv_ts2413.lib
opencv_video2413.lib
opencv_nonfree2413.lib
opencv_ocl2413.lib
opencv_photo2413.lib
opencv_stitching2413.lib
opencv_superres2413.lib
opencv_videostab2413.lib
opencv_calib3d2413.lib
opencv_contrib2413.lib
opencv_core2413.lib
opencv_features2d2413.lib
opencv_flann2413.lib
opencv_gpu2413.lib
opencv_highgui2413.lib
opencv_imgproc2413.lib
opencv_legacy2413.lib
opencv_ml2413.lib
然后保存退出即可。
三、测试程序:
在工程里加入以下代码,如果编译并顺利运行,则表示opencv链接成功:
#include
#include
using namespace std;
int main()
{
IplImage * test;
test = cvLoadImage("D:\\Sample_8.bmp");//图片路径
cvNamedWindow("test_demo", 1);
cvShowImage("test_demo", test);
cvWaitKey(0);
cvDestroyWindow("test_demo");
cvReleaseImage(&test);
return 0;
}
最后运行时可能会有些警告,暂时没看出有什么影响,可以顺利加载出指定路径下的图片。不过有一点需要注意,路径名不能只有一个斜线,必须双斜线起到转义的作用,如:
D:\\
正确
D:\
会找不到图片