看了网上不少VS+OpenCV环境配置的文章,管用的没几个,下面这篇文章包你管用:
- 解压OpenCV-2.3.1:
运行OpenCV-2.3.1-win-superpack.exe,解压到”C:\”根目录下:
- 生成VS2008解决方案:
运行cmake-2.8.7-win32-x86.exe,安装cmake-2.8.7完毕后,运行它。
出现
1) 在where is the source code:输入” C:/opencv”
2) 在Where to build the binaries:输入” C:/opencv/VS2008”
3) 点击Configure,在弹出框中选择 Visual Studio 9 2008,之后点击 finish。
4) 出现界面里面有好多红色选项,再次点击 configure,完成后再点击 generate。完成编译
3. 完成以上步骤后,在C:\opencv\VS2008 目录下生成 OpenCV.sln 的使用 VS2008打开。
1)在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"重新生成解决方案";
2)如编译无错误,再选择INSTALL项目,运行"生成解决方案"。
3)在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"重新生成解决方案";
4) 如编译无错误,再选择INSTALL项目,运行"生成解决方案"。
4. 设置Windows环境变量
将路径”C:\opencv\VS2008\bin\Release; C:\opencv\VS2008\bin\Debug”添加到系统的环境变量 Path 中。
5. 为 VS2008 配置 openCV 的环境
打开 VS2008,菜单 工具->选项->项目和解决方案->VC++ 目录
1) “显示以下内容的目录”选择 “包含文件”,加入目录
C:\opencv\VS2008\install\include
C:\opencv\VS2008\install\include\opencv
2) “显示以下内容的目录”选择 “库文件”,加入目录
C:\opencv\VS2008\lib\Release
C:\opencv\VS2008\lib\Debug
3) 关闭 VS2008.(一定要关闭一次才能正常运行)
6. 具体用到OpenCV的项目工程:
重新打开VS2008新建一个c++项目(每新建一个项目都要进行以下设置才能编译Opencv里的函数),VS2010用回上一步所建的项目。
VS2008:在“解决方案资源管理器”窗口中,右单击项目名,选择“属性”>配置属性>链接器>输入,接着在“配置”下拉框中,选择“Debug”,在“附加依赖项”那栏点击右边的“编辑”按钮,复制下面的库文件名到上方空白处:
- opencv_calib3d231d.lib
- opencv_contrib231d.lib
- opencv_core231d.lib
- opencv_features2d231d.lib
- opencv_flann231d.lib
- opencv_gpu231d.lib
- opencv_highgui231d.lib
- opencv_imgproc231d.lib
- opencv_legacy231d.lib
- opencv_ml231d.lib
- opencv_objdetect231d.lib
- opencv_ts231d.lib
- opencv_video231d.lib
(可根据实际需要删减)
然后,在“配置”下拉框中选择“Release”,照上面的操作,复制下面的库文件名到上方的空白处:
- opencv_calib3d231.lib
- opencv_contrib231.lib
- opencv_core231.lib
- opencv_features2d231.lib
- opencv_flann231.lib
- opencv_gpu231.lib
- opencv_highgui231.lib
- opencv_imgproc231.lib
- opencv_legacy231.lib
- opencv_ml231.lib
- opencv_objdetect231.lib
- opencv_ts231.lib
- opencv_video231.lib
(可根据实际需要删减)
到此Opencv2.3.1配置完成.下面编译运行程序。
具体代码:
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
const char* imagename = "lena.jpg";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}