opencv配置之非配置文件版

这种方法和网上一般opencv配置的方法相比,避免了使用opencv库的工程在拷贝其它电脑中由于opencv视觉库由于位置不同而需要修改配置文件的问题。

下面是具体配置方法,我用的opencv版本是opencv2.4.10。

首先,建立控制台应用工程。

其次,将opencv lib文件以及opencv2头文件拷贝到工程目录中。

lib文件位置 ...\build\x86\vc12\lib;

0pencv2头文件位置 ...\build\include\opencv2;

...表示opencv安装目录。

我用的是visual studio 2013,所以对应vc12。

visual studio 2012对应vc11;

visual studio 2010对应vc10;


如图所示:

opencv配置之非配置文件版_第1张图片

编写的测试代码如下:

// opencv_test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
//添加头文件
#include "opencv2/core/core.hpp"   //核心模块,一般定义Mat等数据类型
#include "opencv2/imgproc/imgproc.hpp" //图像处理模块,一般定义图像处理函数
#include "opencv2/highgui/highgui.hpp"  //GUI模块,一般用于图像显示
//添加lib文件,一般与头文件对应,定义函数的接口
#ifdef _DEBUG
#pragma comment(lib,"lib/opencv_core2410d")
#pragma comment(lib,"lib/opencv_imgproc2410d")
#pragma comment(lib,"lib/opencv_highgui2410d")
#else
#pragma comment(lib,"lib/opencv_core2410")
#pragma comment(lib,"lib/opencv_imgproc2410")
#pragma comment(lib,"lib/opencv_highgui2410")
#endif

//头文件和lib文件都是程序编译时所需要的文件,而传统方法所配置环境变量中的dll动态文件则是程序运行时所需要的
int _tmain(int argc, _TCHAR* argv[])
{
	cv::Mat img = cv::imread("test.jpg", -1);    //Mat类型,core.hpp;
	cv::Mat img_canny;
	cv::Canny(img, img_canny, 100, 200);	//Canny方法,imgproc.hpp
	cv::namedWindow("img", CV_WINDOW_FREERATIO);
	cv::namedWindow("img_canny", CV_WINDOW_FREERATIO);		//显示图像,highgui.hpp
	cv::imshow("img", img);
	cv::imshow("img_canny", img_canny);
	cv::waitKey(0);
	cv::destroyWindow("img");
	cv::destroyWindow("img_canny");
	return 0;
}

 注意:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找;

使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找;

所以在这里要使用引号。

如果想要具体的了解opencv,请链接网址 http://docs.opencv.org/master

如果这样配置好的话,编译是没有问题,但是当我们运行时会发现缺少dll文件。(有些以前配置过opencv的不会出现这个问题,那是因为以前配置opencv的时候在环境变量中添加了dll路径,电脑会自动在该路径下寻找dll文件

opencv配置之非配置文件版_第2张图片
这就需要我们在可执行文件目录下添加对应的dll文件。

dll文件位置 ...\build\x86\vc12\bin;

opencv配置之非配置文件版_第3张图片

这样处理以后就ok啦!下面是我的运行结果。

opencv配置之非配置文件版_第4张图片

如果什么疑问的话,私信我。


ps:根据以上所述我们知道其实opencv我们需要的也就是头文件,lib以及dll文件。之所以你的OpenCV项目在别人电脑中无法使用是因为别人可能没有按照OpenCV或者别人的OpenCV安装目录和你的不同,所以我们要选择相对安装目录而不是绝对安装目录。

相对目录必须要有一个相对的起点,这时候我们就要使用到宏。

opencv配置之非配置文件版_第5张图片

这里宏为(ProjectDir),目录就是工程所在的目录。将OpenCV头文件、lib文件以及dll文件拷贝到工程中,然后再用以上方式配置相应的库,这样也能避免OpenCV项目在别人电脑上不能运行的小毛病。

你可能感兴趣的:(opencv,Visual,Studio,c++)