我正在尝试如何从QML相机实现进一步处理的不同实现,我需要将饲料传递到c++端,以便将其转换为cv::Mat图像并传递给处理函数。我试过从c++端设置一个QCamera,并在一个按钮点击上启动它,但似乎Qt不能创建同一个相机的两个实例。我也尝试过开放式简历的方法,但无济于事。最好的方法是什么?
这不是一个修复,而是一个解决方案。我为相机使用了OpenCv插件,并使用qmlRegisterType使其对我的QML可见。然后,我可以轻松地将帧从后端发送到我的其他类进行处理。对于任何想要这样做的人,我使用这个插件:https://github.com/rferrazz/CvCamView
Android上Qt QML Camera到c++ QImage
我刚刚回答了这个问题,我想你也有同样的问题。
这里的基本思想是获得QML摄像机的实例,访问其QMediaObject点并使用QVideoProbe探测它。还有其他的解决方案,但我知道它们在Android平台上并不容易或快速,但如果这不是你的情况,你可能应该尝试qabstractvidefilter和qvidefilterrunnable类,它们是专门为后期处理qml视频源而开发的。
注意QAbstractVideoFilter和QVideoFilterRunnable仅是Qt 5.5类。