VS2010 封装动态链接库 之 Opencv - 记录贴

在做图像处理的时候有这个问题,用到了Opencv写好了方法,但是到别人电脑上调用还要安装配置Opencv环境,太恶心了,于是需要在封装自己的动态库时略微改动下,就不用这么恶心了。

1. 用Opencv编写方法

用VS创建一个 Win32 控制台应用程序空项目,添加编写自己的 Opencv 方法,(这时电脑上是有Opencv环境的),这里需要注意接口不能含有Opencv的变量。

t.h
_________________________________________________________
#include <stdio.h>
#include "opencv2/opencv.hpp"
#include <iostream> 

using namespace cv;
using namespace std;

int maxNum(double* arrayA, double* arrayB);
t.cpp
_________________________________________________________
#include "t.h"

int maxNum(double* arrayA, double* arrayB){
	Mat A = Mat(1, 2, CV_64FC1, arrayA);
	Mat B = Mat(1, 2, CV_64FC1, arrayB);

	return (int)(A.at<double>(0,0)>B.at<double>(0,0));
}
main.cpp
__________________________________________________________
#include "t.h"

int main(int argc, char* argv[]){

	return 0;
}

 运行后下是没有问题的

2. 查找需要调用的Opencv库

这时候需要对项目动手脚了,先要知道自己的程序调用了哪些Opencv库文件:

  • 将 *\OpenCV 249\opencv\build\x86\vc10 下的bin文件夹移动到别的位置
  • 运行项目会显示缺少那个dll文件,然后添加该文件,直至项目运行成功,我这里只是缺少这一个文件~

VS2010 封装动态链接库 之 Opencv - 记录贴

3. 添加项目中的Opencv库

  • 这时候在自己的项目目录下将整个core文件夹复制过来,连同opencv2这个上级文件夹

VS2010 封装动态链接库 之 Opencv - 记录贴

 VS2010 封装动态链接库 之 Opencv - 记录贴

  • 添加相应的 *.lib *.dll 文件,我这里是 opencv_core249d.lib 和 opencv_core249d.dll 
  • 改成相对引用Opencv库文件~

VS2010 封装动态链接库 之 Opencv - 记录贴

 VS2010 封装动态链接库 之 Opencv - 记录贴

  • 去掉PC端的Opencv环境,编译运行没有报错,就是成功了

VS2010 封装动态链接库 之 Opencv - 记录贴

  • 将现在的完整项目移植到要封装的DLL项目中就可以了

VS2010 封装动态链接库 之 Opencv - 记录贴