需要工具:
vs2012+opencv2.4.5+Cmake2.8.10.2
这里感谢 点击打开链接这篇博客给我的指导 部分内容引用于此
环境搭建
用CMake生成VS2012的OpenCV工程
新建文件夹OpenCVProject:E:\OpenCVProject(用于存放自己的OpenCV编译工程)。
打开CMake,"Browse Source..."选择Opencv的目录E:\opencv(内有CMake的组态档"CMakeLists.txt"),"Browse Build..."选择刚才自己新建的工程存放路径"E:\OpenCVProject"。点击Configure按钮,在出现的对话框中选择Visual Studio 11(如果编译64位dll注意选择64位VS11配置),默认Use default native compilers,Finish继续。
不用管继续点 configure 然后 点击Generate生成Opencv工程,退出CMake。
然后我们进入E:\OpenCVProject 这个目录如图:
能看见一个opencv.snl 的vs文件 用vs打开它
打开生成的Opencv工程,选择CMakeTargets下INSTALL,右键生成 生成Debug版dll,lib
切换编译模式为Release模式,重复上一步生成Release版dll,lib。
上面两步后就能看到最终Debug版和Release版的dll,lib,以及文档目录doc,头文件目录include(bin内为两个版本dll,lib内为两个版本lib)。
然后进入E:\OpenCVProject 拷贝lib 和 bin 文件 到你E:\opencv\opencv2.4.5中
可能你要问这两个文件是干啥的,我当初也有这样的疑问,这里我就简单说一下吧
首先你下载的opencv是源代码 然后你用Cmake 这个东西能帮你把这些源代码生成一个vs的工程
然后就像普通vs的工程一样你就可以打开工程编译了
编译好后不是一个软件而是这些源代码的类库,和连接文件 也就是lib和bin中的东西
这才是我们需要的 因为我们编程序就是调用这些动态库来使用的!
现在我们来编写第一个测试程序看看是否搭建完成!
打开你的vs 新建一个控制台程序 然后在cpp中输入如下代码 c盘里随便放一张图片取名 pp.jpg
#include "stdafx.h"
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("c:/pp.jpg");
if(img.empty())
{
cout<<"error";
return -1;
}
imshow("pp的靓照",img);
waitKey();
return 0;
}
代码考进去,是不是傻眼了!!全是错误是吧!呵呵 不要急 引文我们需要配置一些东西
在你的工程上点击右键-》属性->vc++目录-〉
右边 可执行目录文件 添加 你上面那个bin目录位置/Release 和 bin目录位置/Debug
包含目录
你opencv文件夹下的include 和 include/opencv 和 include/opencv2
然后还有modules文件下 所有文件里的 include目录 有很多是吧 没事慢慢加吧!
运行库添加 刚那个lib文件目录/Debug 就行 也可以把lib文件目录/Release 这个也加上 这里我没有加
然后右边选连接器->输入 附加依关系 添加
opencv_calib3d245d.lib
opencv_contrib245d.lib
opencv_core245d.lib
opencv_features2d245d.lib
opencv_flann245d.lib
opencv_gpu245d.lib
opencv_highgui245d.lib
opencv_imgproc245d.lib
opencv_legacy245d.lib
opencv_ml245d.lib
opencv_nonfree245d.lib
opencv_objdetect245d.lib
opencv_photo245d.lib
opencv_stitching245d.lib
opencv_ts245d.lib
opencv_video245d.lib
opencv_videostab245d.lib
然后确定
最后步吧bin文件里的两个文件 Debug 和Release 添加进系统环境变量
好了 运行一下吧 就可以显示你那个图片了!
这样我们就的环境变量就搭建完了!