平台:win7,64位
双击opencv安装包,解压到目录D:\OPENCV2.4.10\
以下内容都是build文件夹里的内容
Step1. 设置环境变量:
(将OpenCV的dll文件所在的目录加入Path环境变量)
我的电脑--->右键--->属性--->高级--->环境变量--->在用户变量里,
(1) 在path中添加D:\OPENCV2.4.10\opencv\build\x64\vc10\bin,就是添加dll文件
注意:64 位系统这里也选x86,否则后面还要在项目中把win32平台改为X64平台,后面各种麻烦
(2) 新建名为OPENCV的环境变量:D:\OPENCV2.4.10\opencv\build
加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。
Step2. 配置include路径
(告诉VS去什么地方找OpenCV的头文件)
打开一个OpenCV的工程,工程名称上右击-->属性
在配置属性-->VC++目录-->包含目录文件中添加
D:\OPENCV2.4.10\opencv\build\include
D:\OPENCV2.4.10\opencv\build\include\opencv
D:\OPENCV2.4.10\opencv\build\include\opencv2
(这三个include要分条记录,顺序最好是opencv2 opencv include,没有分号)
Step3. 配置lib路径
(告诉VS去什么地方找OpenCV的库文件)
在配置属性--->VC++目录--->库目录中添加 【Debug和Release都要添加】
D:\OPENCV2.4.10\opencv\build\x64\vc10\lib
Step4. 添加lib库文件
在项目属性页,左上角的配置选debug,
在链接器--->输入--->附加依赖库里加上
opencv_core2410d.lib
opencv_highgui2410d.lib
opencv_video2410d.lib
opencv_ml2410d.lib
opencv_legacy2410d.lib
opencv_imgproc2410d.lib
【注意】1.不同版本注意修改版本号,如2.4.10为2410
2.Release和Debug加入的内容不同,Release的后面没有d
类似地,在项目属性页左上角的配置选Release,
在链接器--->输入--->附加依赖库里加上
opencv_core243.lib
opencv_highgui243.lib
opencv_video243.lib
opencv_ml243.lib
opencv_legacy243.lib
opencv_imgproc243.lib
----------------------------------------------------------------------------------------------------
测试:最简单的程序(读入图片,显示图片)
#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;
}
------------------------------------------------------------------------------------------------------
测试问题1:
当按下F5调试后,若是64位的操作系统,有可能会出现如下错误:错误1error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突
解决:
这是因为vs2010的编译平台是x86所致。解决方法:
点击F5旁边的“Debug”,在下拉链表里边选择“配置管理器”。进入配置管理器后,把Win32改成X64,然后点菜单栏:生成->清理解决方案->重新生成解决方案。OVER。
测试问题2:
fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏解决:
上网搜索发现是嵌入清单的问题,于是对该工程以及所有依赖工程进行如下操作
右键->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]