由于项目需要在C#中调用opencv的函数处理图像,而暂时没时间了解CLR/C++,所以就采用封装API的方式调用,使用的IDE是VS2015,记录过程如下:
一、 创建封装好的动态链接库
1、创建新项目
在VS2015新建visual C++项目——Win32项目——应用程序类型DLL——完成,由于我的opencv在64位下配置,所以解决方案切换为x64、release(此模式下会省掉调试信息,适合最终发布的版本)。
解决方案名称与项目名称都为useopencv,在项目中创建自己的头文件useopencv.h,将要打包的函数在此声明,如:
extern "C" __declspec(dllexport)void __stdcall use_opencv(const char* add);
2、为要导出的函数打包
打开stdafx.h,将useopencv.h与opencv的头文件放到stdafx.h里面。再将函数的实现部分复制到useopencv.cpp,此处以打开一张图片为例:
void __stdcall use_opencv(const char* add) {
using namespace cv;
Mat src = imread(add);
imshow("src", src);
waitKey(0);
r