安装opencv 2.3.1 更新整理,在这里我整理出来,以便将来整理添加到“opencv例子详解”中。
opencv2.3.1下载:
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3.1/ 选择相应的opencv版本,
我选择的是
OpenCV-2.3.1-win-superpack.exe
cmake2.8.6下载
http://cmake.org/cmake/resources/software.html 选择相应的cmake版本。
我选择的是Windows (Win32 Installer)
第一步:解压安装opencv
第二步,解压安装cmake
第三步,编译cmake,配置,生成用vs2010可执行的文件
(1)找到"开始->所有程序->CMake->CMake(cmake-gui)"打开cmake-gui。在第一个路径处选择opencv的安装路径。第二个路径是make得到的工程保存位置,可以随便设置,不过不能包含中文。
(2)点击Configure并选择合适的编译器。如果你使用的是VC2008,就选择visual studio 9 2008;如果是VC2005,就选择visual studio 8 2005,这里我选择的是 visual studio10, 2010;
(3)选择完编译器之后,再次点击Configure
(4)再次点击Configure可以得到下图,此时Genertae按钮可用
(5)点击Generate就可以生成VS2010的工程文件。它保存在上面你设置的工程生成目录下面。
第四步:在F:\OpenCV\vs2010目录下生成解决方案OpenCV.sln,点击它,VS 2010就可以打开OpenCV.sln,然后执行如下操作:
在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
此时,我们可以获得如下结果:
OpenCV
的*d.dll文件(for debug)和*.dll文件(for release)将出现在F:\opencv\vs2010\install\bin目录;
OpenCV的*d.lib文件(for debug)和*.lib文件(for release)将出现在F:\opencv\vs2010\install\lib目录;
头文件*.h出现在F:\opencv\vs2010\install\include目录;
至此,可以被VS++ 2010调用的OpenCV动态库生成完毕!
将F:\opencv\vs2010\install\bin加入Windows系统环境变量Path
中。加入后请重新启动电脑,配置才能生效。
opencv_core231d.lib;opencv_highgui231d.lib;opencv_video231d.lib;opencv_ml231d.lib;opencv_legacy231d.lib;opencv_imgproc231d.lib
把Debug换成Release(如果问你是否保存,则保存修改),再添加:(不要忘记分号哦!)
opencv_core231.lib;opencv_highgui231.lib;opencv_video231.lib;opencv_ml231.lib;opencv_legacy231.lib;opencv_imgproc231.lib
231表示OpenCV的版本为2.3.1,其他版本的只要改下数字即可,VS2005,VS2008配置OpenCV也大同小异,例如2008要把VC10改成VC9等等。
第五步,配置VS 2010
这里和2008有点区别
第六步:测试代码:
#include <stdio.h>
#include "opencv\cv.h"
#include "opencv\highgui.h"
//#include "opencv2\opencv.hpp"
int main(int argc, char* argv[])
{
IplImage* img = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_UNCHANGED);
if (!img)
{
return -1;
}
cvNamedWindow("display", CV_WINDOW_AUTOSIZE);
cvShowImage("display", img );
return 0;
}