前言
算法部分我们使用opencv4.10作为开发,那么我们在.net winform做UI界面开发时,需要进行相关调用。比较简单的方式是直接从NuGet中直接搜索OpencvSharp进行安装。OpecvSharp对Opencv进行了二次封装,在.net中可以快速操作相关对象和算子,且数据结构统一。
此处为了保证C++和C#使用的opencv库版本保持一致(避免由于部分不同引起的内存异常或调用异常),我重新对OpencvSharp进行编译,主要步骤如下:
1、下载OpencvSharp源代码
下载路径:https://github.com/shimat/opencvsharp
2、编译OpenCvSharpExtern
该库重新对opencv内的函数进行了二次封装,供C#进行DllImport的方式调用,我们需要先对齐进行编译生成C++的动态库。
ps:此处用到的 lib/include/dll 在上一篇文章编译opencv中可以生产,注意需要一并编译 opencv_contrib(可在opencv源码仓库处一并下载,编译时设置编译完成即可)。详细文章跳转至:OpenCv编译
1) 打开项目属性->VC++目录,查看其包含目录以及库目录设置路径(此处可修改成自己路径,也可以直接拷贝文件过来,我这里是直接把文件拷贝过来编译)
2)拷贝头文件/lib/dll至对应目录下
3)修改链接器(原本是有一堆的lib进行链接,由于我们前面是编译成一整个库,所以直接改成了 opencv_world****.lib进行链接)
4)编译生产OpenCvSharpExtern
3、编译C#调用库
编译 OpenCvSharp/OpenCvSharp.Extensions ,其它库我用不到所以没有编译
总结
以上步骤操作完我们就可以完成OpenCvSharp的编译动作,使其跟我们使用的C++库保持一致,整体上流程还是比较简单,建议大家都去编译一下。