一、 痛点:你在如何调试 C++ 算法?
作为一名 C++ 开发者,尤其是在从事计算机视觉 (CV)、机器人或算法开发时,你是否遇到过以下尴尬:
- 想看
cv::Mat里的图像,只能先cv::imwrite保存到本地,再打开文件夹查看? - 想看
std::vector里的数值分布,只能在控制台打印一长串printf,然后肉眼找规律? - 想看 3D 点云数据,还得专门写个
pcl::viewer或者把数据导出给 Python 绘图?
这些碎片化的操作严重打断了编程心流。难道 VS Code 就不能像 Visual Studio 的 Image Watch 那样,在调试时直接看图吗?
答案是:能!CV DebugMate C++ 插件正式发布!
二、 简介:CV DebugMate 是什么?
CV DebugMate 是一款专为 VS Code 打造的 C++ 调试可视化扩展。它的目标是将调试过程中的枯燥变量数值,转化为直观的图像、曲线和 3D 模型。
- GitHub 地址:dull-bird/cv_debug_mate_cpp
- 灵感来源:致敬 Visual Studio 的经典插件 Image Watch。
三、 核心功能:全方位覆盖 1D/2D/3D 数据
1. 📈 1D 曲线图
支持 std::vector、std::array、std::set 以及单通道的 Mat。
- 交互式缩放:框选放大、滚轮平移。
- 多种模式:支持折线图、散点图、直方图。
- 一键导出:支持导出 PNG 图片或 CSV 原始数据。
2. 🖼️ 2D 图像查看器(Image Watch 的 VS Code 完美复刻)
支持 cv::Mat、cv::Matx、C 风格数组等。
- 高倍率放大:放大到 100 倍时,可直接在像素格上显示数值。
- 自动归一化:支持浮点型和整数型图像的对比度拉伸。
- 伪彩色/通道查看:单通道、多通道一键切换。
3. 📊 3D 点云查看器
支持 std::vector<cv::Point3f> 等各种 3D 点集。
- Three.js 驱动:流畅的旋转、缩放、平移体验。
- 轴向着色:可根据 X/Y/Z 坐标自动上色,快速观察几何结构。
- 导出 PLY:方便后续导入 MeshLab 等专业软件。
4. ⚡ 深度集成与同步
- 自动检测:调试时,侧边栏会自动显示当前作用域内的所有可识别变量。
- 视图同步:两张图像对比调试?支持缩放/平移联动。
- 多平台/多调试器:完美支持 Windows (MSVC/MinGW)、macOS (Clang) 和 Linux (GCC)。
四、 快速上手
- 在 VS Code 插件市场搜索 CV DebugMate 并安装。
- 在你的 C++ 项目中设置断点并启动调试。
- 点击左侧“运行和调试”视图,在下方的 CV DebugMate 面板中点击你想查看的变量。
- Boom! 可视化窗口瞬间开启。
(此处建议插入一张演示 GIF 或拼图,展示插件运行时的实时感)
五、 为什么选择 CV DebugMate?
相比于市面上已有的方案,我们做了深度优化:
- 零侵入性:无需在你的 C++ 代码中引入额外的头文件或链接库(除非你使用的是自定义类型)。
- 原生感:界面 UI 深度契合 VS Code 风格,不突兀。
- 高性能:采用二进制流传输数据,百万级点云也能快速渲染。
六、 欢迎参与贡献
本项目完全开源!如果你有以下需求,欢迎在 GitHub 提 Issue 或 PR:
- 支持更多自定义数据类型(如 Eigen、PCL 类型)。
- 优化更大数据量的传输效率。
- 界面功能增强。
如果这个插件帮到了你,请给个 Star ⭐ 鼓励一下开发者!