OpenCV2.0.0这个版本的 bin 和 lib都是未经编译、还不能直接使用的。通过 OpenCV 中文论坛得知,要使用 Cmake 软件对 OpenCV 源代码重新编译,才能得到最终的dll 和 lib 文件。编译方法如下:
1. 假设OpenCV2.0安装于以下目录: C:/opencv2.0。
2. 使用CMake建立VC工程文件
2.1 运行Cmake gui
Where is the source code: C:/opencv2.0
Where to build the binaries: C:/opencv2.0/vs2008build(自己新建此目录)
2.2 点击configure按钮,选择相应的编译器为visual studio 9 2008,点击finish,出现红色标记的参数。
2.3 再点configur按钮,参数消除了红色。
2.4 点击generator按钮,生成工程文件。
3. 用vc2008进行编译
完成上一步骤后,将在C:/opencv2.0/vs2008build目录下生成OpenCV.sln的VC Solution File,请用VS2008打开OpenCV.sln,然后执行如下操作:
此时,OpenCV的*d.dll文件(for debug)和*.dll文件(forrelease)将出现在C:/opencv2.0/vs2008build/bin目录中;OpenCV的*d.lib文件(fordebug)和*.lib文件(forrelease)将出现在C:/opencv2.0/vs2008build/lib目录;头文件*.h出现在C:/opencv2.0/vs2008build/include/opencv中。
可以被VS2008调用的OpenCV动态库生成完毕。
本文档适用版本为OpenCV 2.0和Visual C++ 2008 Express,如使用其他版本,仅供参考。
OpenCV2.0官方安装文档,请参考:http://opencv.willowgarage.com/wiki/InstallGuide
目录[隐藏]
|
Visual C++ Express是微软推出的一款免费集成开发环境,如果你没有足够资金购买Visual C++,你可以使用Visual C++ Express。本安装说明撰写时,最新的版本是Visual C++ 2008 Express.
Visual C++ 2008 Express可以从微软网站下载安装(http://www.microsoft.com/express/product/default.aspx)。
从 http://www.opencv.org.cn/index.php/Download 下载OpenCV 2.0,并安装,本文档假定安装目录为:D:/Program Files/OpenCV2.0
从 http://www.cmake.org/cmake/resources/software.html 下载 Windows (Win32 Installer) 安装。
|
|
|
完成上一步骤后,将在D:/Program Files/OpenCV2.0/vc2008目录下生成OpenCV.sln的VC Solution File,请用VC++ 2008 Express打开OpenCV.sln,然后执行如下操作:
此时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在D:/ProgramFiles/OpenCV2.0/vc2008/bin目录中;OpenCV的*d.lib文件(for debug)和*.lib文件(forrelease)将出现在D:/Program Files/OpenCV2.0/vc2008/lib目录;头文件*.h出现在D:/ProgramFiles/OpenCV2.0/vc2008/include/opencv中。
可以被VC++ 2008 Express调用的OpenCV动态库生成完毕。
|
|
|
|
|
将D:/Program Files/OpenCV2.0/vc2008/bin加入Windows系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。
|
|
打开VC++ 2008 Express,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories
关闭VC++ 2008 Express。
|
|
/*********************************************************************** * OpenCV 2.0 测试例程 * 于仕琪 提供 ***********************************************************************/ #include "stdafx.h" #include "highgui.h" //所有的以新风格命名的函数都在 cv 命名空间中 //如果希望不要每次都输入 cv:: ,则可使用下面语句 //using namespace cv; int _tmain(int argc, _TCHAR* argv[]) { const char* imagename = "lena.jpg"; cv::Mat img = cv::imread(imagename); // Matlab风格的 cvLoadImage 函数的另一种调用 if(img.empty()) { fprintf(stderr, "Can not load image %s/n", imagename); return -1; } if( !img.data ) // 检查是否正确载入图像 return -1; cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口 cv::imshow("image", img); //显示图像 cv::waitKey(); return 0; }
|
|
|
|
|