如何检索QML摄像头源并发送到C ++后端

时间:2015-07-15 09:44:32

标签: c++ qt opencv qml

我正在尝试如何从QML摄像头实现进一步处理的不同实现,我需要将feed传递给C ++端,以便它可以转换为cv :: Mat图像并传递给函数进行处理。我已经尝试从C ++端设置QCamera并在按钮单击时启动它,但似乎Qt无法创建同一相机的两个实例。我也试过一个开放的CV方法,但无济于事。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:3)

这不是解决方法,而是解决方法。我使用了一个OpenCv插件用于相机,并使用qmlRegisterType使我的QML可见。然后我可以轻松地将帧从后端发送到我的其他类进行处理。对于任何想要这样做的人,我使用了这个插件:https://github.com/rferrazz/CvCamView

答案 1 :(得分:2)

Qt QML Camera to C++ QImage on Android

我刚回答了这个问题,我认为你遇到了同样的问题。

这里的基本思路是获取QML相机的实例,访问其QMediaObject点并使用QVideoProbe进行探测。还有其他解决方案,但AFAIK在Android平台上并不是非常简单或快速,但如果不是你的情况,你应该尝试QAbstractVideoFilter和QVideoFilterRunnable类,这些类是专为后期处理qml视频源而开发的。

请注意,QAbstractVideoFilter和QVideoFilterRunnable仅为Qt 5.5类。