【问题标题】:"MATLAB style" computer vision \ image processing visualization \ debugging tools [closed]“MATLAB风格”计算机视觉\图像处理可视化\调试工具[关闭]
【发布时间】:2011-09-23 01:48:28
【问题描述】:

我正在寻找可以用 c++ 对计算机视觉\图像处理程序进行简单可视化和调试的工具。

需求主要是调试和研究。

具体特点:

  • 显示放大\out的图像
  • 能够注释图像
  • 能够将注释链接到数据(单击时会显示)
  • 能够将注释链接到操作

OpenCV 有一些功能,但它们非常有限 - 尤其是鼠标和键盘交互。

【问题讨论】:

  • “Matlab 风格”是什么意思?
  • 您最好列出一些您正在寻找等效项的 MatLab 命令。

标签: c++ matlab image-processing visualization computer-vision


【解决方案1】:

我经常使用的技术是在 C++ 代码中放入一种跟踪点。

int x, y;
double d;
MyImage myImg;

TRACE_POINT(x, y, d, myImg);

TRACE_POINT 是一个有条件地将数据序列化到外部库的宏。例如,ImageJ 是一个非常强大的工具,有许多可用的插件。 我在一个项目中工作,其中一个简单的基于 TCP 的 ImageJ 插件连接到 Visual Studio 调试器。当您将鼠标悬停在调试器内的 myImg 变量上时,图像会自动发送到 ImageJ。

或者(promotion)类似于Cpp2Mtl的Vcall,它知道将数据从TRACE_POINT直接序列化到Matlab。

【讨论】:

  • 您是否有示例(或参考)可以从调试器中触发此类操作?
  • 以 ImageJ 为例,它是 debugger visualizer。而TRACE_POINT 在没有调试器的情况下工作。 Matlab 通过命令提示符的命令“连接”到兴趣点。
【解决方案2】:

我同意 pxu 的观点,可能没有一个图像处理库可以完全满足您的需求。 OpenCV 和 VXL 都有一些基本的和/或笨重的 GUI 组件,但不足以满足您的要求。

如果您想坚持使用 C++,那么我建议您使用 Qt(在 LGPL 下分发 - 可免费用于商业和非商业用途)或 Microsoft .NET。这两个库框架都具有良好的 UI 功能集,可用于处理图像(在某种程度上还包括视频)和基本形状的渲染。两者都有很好的记录。我的感觉是,即使您是 Qt 新手,也只需要几天左右的时间就可以使用您列出的功能构建一个简单的应用程序。

如果您希望在 Python 中进行原型设计,Qt 也可能是一个有趣的选择。 Python、PySide/PyQt、OpenCV、NumPy 和 SciPy 的组合应该提供一个非常不错的原型设计环境。 Enthought 还列出了许多其他可能有用的软件包。此外,由于其中一些库支持两种语言,这将简化从原型到 C++ 优化实现的过渡。

【讨论】:

    【解决方案3】:

    简短回答:我认为没有。

    如果您正在调试和研究,只需使用 Matlab。如果速度是一个问题,请使用 Matlab 分析器并将相应的函数混合到 C/C++ 甚至 GPU 代码中。我从事计算机视觉研究已有好几年了,并以这种方式编写了大量实时应用程序。

    OpenCV 不错,VLFeat(同时提供 Matlab 和 C API)很棒。但是,最终,您将使用带有 REPL 的解释语言(如 Matlab)更快地进行研究。对于计算机视觉原型设计,我会认真考虑的唯一其他替代方案是 Python 和 Lush

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 2011-09-13
      • 2013-08-20
      • 2011-02-09
      • 2015-01-30
      • 1970-01-01
      相关资源
      最近更新 更多