我的任务是为自适应使用乐器项目(AUMI)编程GUI。 GUI是一种适用于行动不便人士的音乐创作工具。当前的GUI从摄像机获取数据,在屏幕上显示,允许用户选择要跟踪的点(使用openCV)并使用此数据来提示midi音符/音频样本。
MaxMSP中目前存在一个可行的实现,但随着时间的推移(和大小),它变得缓慢,难以管理,错误和交叉不兼容。我将在不同的框架中重新实现它,尽管我还没有决定哪个。 Processing,OpenFrameworks,Juce和Qt都已成为可能。
要求:
思考?基本上我正试图找到编程时间(我没有吨)和最终功能的最佳平衡。 MaxMSP非常适合启动和运行原型,但我们需要更具可扩展性的东西。从正确的地方开始真的很不错。
答案 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。