2

我的任务是为自适应使用乐器项目 (AUMI) 编写一个 GUI。GUI 是一种音乐创作工具,适用于行动不便的人。当前的 GUI 从摄像机获取数据,将其显示在屏幕上,允许用户选择要跟踪的点(使用 openCV)并使用此数据来提示 MIDI 音符/音频样本。

MaxMSP 中目前存在一个可行的实现,但随着时间的推移(和大小),它变得缓慢、难以管理、有缺陷和交叉不兼容。我将在不同的框架中重新实现它,虽然我还没有决定哪个。Processing、OpenFrameworks、Juce 和 Qt 都被提出来作为可能性。

要求:

  • 最终的 GUI 必须在 Windows 和 Mac 上运行。
  • 计算机视觉应该尽可能流畅地运行,即使在低端机器上也是如此(我们现在只是在做点跟踪,但希望将来会有更高级的东西)。
  • GUI 必须基本上不需要其用户的技术专业知识,这主要用于学校。我意识到这在很大程度上取决于设计,但我也不想要用户需要导航的包含一百万个文件的构建。

想法?基本上我试图找到编程时间(我没有很多)和最终功能的最佳平衡。MaxMSP 非常适合启动并运行原型,但我们需要更具可扩展性的东西。从正确的地方开始真的很好。

4

3 回答 3

4

我用过Qt。它真的很干净、易于管理和快速。通过使用 Qt Creator,您将能够非常快速地创建用户界面。

在 Windows/Mac 环境中链接 openCV 对您来说不是问题。Qt 还允许您为 Windows 和 Mac 设置不同的链接规则,这将使您更加轻松。对于线程和网络,您可以使用其内部类。这样您就不需要链接到 Win32 和 Mac OS 上的不同库。

最近他们也增加了对 Android 的支持。他们以前也有 Linux 支持。因此,您的应用程序可以运行Win32/Mac/Linux/Android并且可能iOS很快就会运行。我想这将是巨大的好处。

几年前,我还在一个 OpenCV 项目中使用了 wxWidgets。我现在更喜欢 Qt。

于 2013-09-10T19:53:24.430 回答
1

openFrameworks 仍然没有“官方”全面的 GUI 解决方案,但可以通过插件获得一些好的跨平台/跨设备解决方案。目前最流行的是https://github.com/rezaali/ofxUI。您可以通过查看http://ofxaddons.com/并按 GUI 过滤来探索其他 GUI 选项。从 openFrameworks 0.8.0 开始,我们使用GLFW 3作为我们的桌面窗口系统(替换 GLUT),它为我们提供了更好的键盘和输入事件处理。这对于 openFramework GUI 来说是个好消息。

虽然将 Qt 与 openFrameworks 一起使用并非不可能(请参阅此论坛帖子进行讨论),一些基于 ofxAddon 的 GUI 将能够更快地与 openFrameworks 集成,如果您没有大量额外的编码时间,这一点很重要并且您需要轻松访问 OpenCV,以及可用于 openFrameworks 的易于使用的插件世界。最后一个提示——如果你选择使用 openFrameworks 路线,我强烈推荐https://github.com/kylemcdonald/ofxCv。它是 openFramework 内置的 OpenCV 支持的替代方案,并且充满了有用的示例。祝你好运!

于 2013-09-11T13:01:48.570 回答
0

在大量使用开放框架和 Qt 之后,我会说开放框架。更容易与声音软件和 OpenGL 交互。

即使 qt 与 OpenGL 有一个很好的集成,qt5 也有变化,但仍然存在一些问题 - 据我尝试过 - 使用 qml,OpenGL 和 OpenCV 之间的集成必须手动将 opencv 图像传输到 OpenGL 纹理等。我可以说你是因为我尝试在 Qt 中实现类似的东西,如果我可以回去,我肯定会选择 openframeworks。

当然,使用 Qt 是可行的。但是 openframeworks 就是为做这类工具而生的。Qt 是更多的东西。有关附加组件的详细信息,请参阅bakercp 答案

于 2014-04-03T10:22:46.673 回答