一、前言
进行图像处理和视觉算法代码开发时,我们经常在Visual Studio需要用到OpenCV,在编程环境下,与VS 调试互动和可视化就显得尤为重要,比如,最常见的需求是:断点调试到某个mat过程变量,查看这个图像的处理效果,在C++&vs环境下,比较推荐 Image Watch插件(在对应vs拓展市场中下载安装即可)。
🎯然而对于 C# 语言编程者来说,跨语言到C++环境调试下好像不太好,对此,作为OpenCV的C# 封装包(最受欢迎的CV的.net封装包),也有对应的vs插件——OpenCvSharp.DebuggerVisualizers
,不过对于image watch来说,确实功能性和适用性没那么丰富,不够也能满足C# 友友们的需求了。
二、解决方案
2.1编者的使用环境介绍:
- VS2019
- OpenCVSharp4.5.5(一般到4.8好像都可以,编者这里没问题)
- win10(windows11也可以,无太大差别)
2.2.主要思路:
将对应的可视化插件动态链接库OpenCvSharp.DebuggerVisualizers.dll
放在vs安装目录下即可!
1️⃣自己去OpenCVsharp的github库下载源码工程,一般下载与自己常用的opencvsharp版本(笔者用的是opensharp4.5.5,没刚好对应,就直接下载:4.5.3.20211228也可以用,版本不差太多就行,4.5.x就行了,其他版本也可以自己试下)
opencvsharp github传送门
4.5.3.20211228笔者使用的版本传送门,可以按照自己对应的cv版本进行下载,这样最好!
2️⃣有源码工程,需要自己动手,也有现成文件(笔者选的是现成文件,不用自己编译,如果实在不行,再用源码生成的方式)。
- 对应的源码工程是这个,是个动态链接库工程,如果想要手动生成文件的话,就重新生成这个文件即可(vs有可能要你先nuget包下好对应的opencvsharp,不然会报错,这个看实际情况,有些,完整工程已经配置好,不用再下)。
- 如果是使用现成文件的化,解压压缩包,动态库文件在这个路径。
3️⃣无论你以那种方式,最重要要拿到可用的OpenCvSharp.DebuggerVisualizers.dll
文件,这点很重要!
接着打开vs的安装路径,如下:
复制文件到该目录下,如果先前打开了vs软件,一定要关掉重开(反正复制后要重新打开软件)
2.3使用
1️⃣打开对应的c# 的vs工程,在随便的一个mat对象的代码行进行断点标记:
2️⃣等运行到代码行,运行到断点行附近,将鼠标放置在已有赋值并且是图像类型的mat对象上,接着会弹出一个放大镜的按钮图案,点击后即是该变量对应的图像。
3️⃣显示mat对象的窗口:
大功告成!
三、注意事项
🔵 可能出现的小问题(注意!)
- 放大镜没出现 确保 Mat 是有效对象(不是 null),而且是 OpenCvSharp 4.x 以上
- 装了没生效 重启一下 VS,有时候需要重新加载 Debugger Visualizer
- 依赖不对 OpenCvSharp 本体和 DebuggerVisualizers 版本要对应,比如都是4.5.x或都是4.8.x
最后,文字若有不足,敬请批评指正!