用于创建跨平台计算机视觉GUI的理想框架

时间:2013-09-10 19:13:01

标签: qt opencv processing openframeworks juce

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

MaxMSP中目前存在一个可行的实现,但随着时间的推移(和大小),它变得缓慢,难以管理,错误和交叉不兼容。我将在不同的框架中重新实现它,尽管我还没有决定哪个。 Processing,OpenFrameworks,Juce和Qt都已成为可能。

要求:

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

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

3 个答案:

答案 0 :(得分:4)

我用过Qt。它非常干净,易于管理且速度快。通过使用Qt Creator,您可以非常快速地创建用户界面。

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

最近他们也添加了Android支持。他们以前有Linux支持。因此,您的应用程序可以在Win32/Mac/Linux/Android上运行,也可能在iOS上运行。我想这将是巨大的好处。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

在密集使用开放框架和Qt之后,我会说开放框架。使用声音软件和OpenGL更容易界面。

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

当然,Qt是可行的。但openframeworks诞生于做那些工具。 Qt更多。有关加载项的详细信息,请参阅bakercp answer