【问题标题】:GUI for computer vision app [closed]计算机视觉应用程序的 GUI [关闭]
【发布时间】:2013-09-10 08:15:09
【问题描述】:

我想对我的计算机视觉应用程序的 GUI 提出一些意见。我使用 OpenCV 用 C++ 编写了一个应用程序,它从高速摄像机捕获视频,对图像进行一些图像处理并将结果显示到 HighGUI 窗口。我发现自己会定期调整变量,因此决定使用 GUI 动态调整这些变量会更容易、更快捷。我有几个选择:

  • 创建一个可以使用套接字与我的 C++ 计算机视觉应用程序对话的 Java GUI
  • 在 QT GUI 中集成我的应用程序
  • 使用本机 Windows 调用(例如 MFC)

你们认为哪个是我最好的选择,请记住 GUI 或套接字不得降低应用程序图像处理部分的性能?

(我的目标操作系统是 Windows)

在此先感谢大家的投入。

【问题讨论】:

  • 使用 Microsoft C++ CLR。使用 Windows 窗体创建界面。将 OpenCV 代码集成到同一个 C++ 项目中。即将托管的 Windows 窗体代码与非托管的 OpenCV 代码混合。

标签: java qt opencv image-processing user-interface


【解决方案1】:

我会考虑选项 1 或 2,3 接缝绝对是最糟糕的,因为你必须自己编写所有与 gui 代码相关的代码,而且它是不可移植的。
1.我会考虑在Java中创建GUI并将整个c++代码放入库中并在Java中使用它,甚至在Java中使用本机c++代码,而不是这个选项。此解决方案应该比通过套接字发送数据更快。
2. QT 是最好的选择——它有很大的社区,很多教程,并且部分集成了 OpenCV(http://opencv.willowgarage.com/documentation/cpp/highgui_qt_new_functions.html)。另一个优点是使用 QT 和 OpenCV 创建的应用程序可以在许多操作系统上运行。您也可以使用 Qt Creator 或 Visual Studio qt 插件来创建 gui。

【讨论】:

    【解决方案2】:

    您真的不想在 Windows 上处理平台本机代码。 API 是过时的,就像 MFC 一样。

    我认为在单独的进程中隔离 GUI 没有任何好处。

    我建议使用 Qt Quick。您可以通过将 OpenCV 中的图像绑定到普通场景图项上的纹理来非常有效地显示图像。您可以同时获得流畅、现代的用户界面和与 OpenCV 的高性能集成。可以这么说,这一切都融为一体。

    将变量与 QML 集成的最简单方法是使用模型视图范式。您可以通过重新实现 QAbstractListModel 来公开 C++ 中的变量。变量的值可以绑定到编辑和显示角色。变量的名称可以作为附加角色公开,例如称为name。然后在 Qt Quick 中使用 ListView 来显示变量列表并允许在运行时对其进行调整是一件简单的事情。您可以轻松地为您的项目设置“精美”的代理,例如滑块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 2011-07-25
      • 2011-07-11
      • 2018-03-19
      • 2014-07-05
      • 2011-02-14
      • 2014-07-07
      相关资源
      最近更新 更多