OPENCV是计算机视觉(Computer Vision)的一个重要库,目前以C++为核心编程语言。本文主要讲解VS2013+OPENCV 2.4.13的平台搭建过程,经过验证VS2012也能正常使用。
配置前尽量使计算机联网,有可能需要下载VS相关的组件,例如window SDK 、 windows C++ runtime 等。VS2012/VS2013在网上有下载,尽量使用镜像+key,部分安装会出现问题,很大程度上是缺少配件或者配置不当造成的。
1.前往官网:http://opencv.org/
2.下载右侧的OpenCV for Windows
3.将文件解压到指定目录,假设我安装到了D:\,解压后得到D:/opencv文件夹。
4.设置全局路径,此处有两种方法
第一种是使用命令行,按下WIN+R,在左下角弹出的框内打入cmd,转到命令行界面,接下来按照自己的版本输入如下内容
setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc11 (suggested for Visual Studio 2012 - 32 bit Windows)
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc11 (suggested for Visual Studio 2012 - 64 bit Windows)
setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc12 (suggested for Visual Studio 2013 - 32 bit Windows)
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc12 (suggested for Visual Studio 2013 - 64 bit Windows)
成功后则系统目录中增加了一个变量名为OPENCV_DIR的路径,指向了之前下载的文件夹内部的lib文件库。其中vc12是VS2013,vc11是VS2012。
另一种方法是右键我的电脑->属性->高级系统设置->高级->环境变量处,找到新建,填入
变量名:OPENCV_DIR
变量值:D:\opencv\build\x86\vc12
5.同上位置,找到Path变量,在变量值后面添加%OPENCV_DIR%\bin,注意此处多个路径用分号;分隔。
以上步骤完成了系统部分的配置,接下来的部分是配置Visual Studio的位置。
6.打开Visual Studio,本文以VS2013为例,新建C++工程后,右键调试-><项目名>属性->配置属性,这里是配置该项目的地方
7.点开VC++目录
包含目录处添加:
$(OPENCV_DIR)….\include
库目录处添加:
$(OPENCV_DIR)\lib
这里 $(OPENCV_DIR) 就是之前在系统环境设置时配置的opencv库的目录。
8.点开 链接器->输入->附加依赖项
此处添加库文件:
opencv_ml2413d.lib
opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_objdetect2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_nonfree2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_videostab2413d.lib
这些库名由opencv + 模块 + 版本号命名,例如calib3d就是相机3d空间校准的简称,以后在opencv的教程中也能找到这个模块,2413表示的就是2.4.13版本,有需要可以去$(OPENCV_DIR)\lib 下面查找。
9.试一下下面的代码
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
if( argc != 2)
{
cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
Mat image;
image = imread(argv[1], IMREAD_COLOR); // Read the file
if(! image.data ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
}
10.点开:调试-><项目名>属性->配置属性->命令参数
这里可以替代传统需要cmd命令行界面输入参数的流程,保存了调试所需的参数,也就是main 函数的输入字符串数组变量argc和argv。这些参数在结束调试不再使用后可清除。
填入某图片的名字,例如我有一张1.jpg图片,则填入该文件名1.jpg。然后将该图片拷贝到<解决方案文件夹>/<项目名>根目录下,例如我的工程在Camera/CalibCam下,其中Camera是解决方案所在文件夹,CalibCam是子项目所在文件夹。
解释一下解决方案,VS的解决方案就是solution,保存在以sln为后缀的文件内,这个文件对应的位置就是解决方案文件夹。在这个文件夹下面还有子目录,隶属于这个解决方案的项目保存在各自的子目录中,一般以项目命名文件夹。
11.点击调试->启动调试,则可以看到这张图片的显示内容了。
如果一切顺利,恭喜你将进入OPENCV机器视觉的大门,在这篇浩瀚的海洋里自由翻腾!微笑
有什么问题欢迎在下面的留言中讨论!
参考网址:
opencv官网:http://opencv.org/
opencv的官方教程:http://docs.opencv.org/2.4/doc/tutorials/tutorials.html