在 Android 中使用 metaio 在 openCV 中渲染 3D 对象
Posted
技术标签:
【中文标题】在 Android 中使用 metaio 在 openCV 中渲染 3D 对象【英文标题】:3D object rendering in openCV using metaio in Android 【发布时间】:2014-03-02 22:16:37 【问题描述】:我正在开发一个应用程序,我正在使用 opencv 检测相机图像中的形状,并希望在这些形状上显示由 metaio 渲染的 3D 对象。如何实现?我尝试过自定义渲染,但没有调用“onNewCameraFrame”方法。
我必须将我们在 'onNewCameraFrame()' 方法中获得的每个相机帧转换为 Mat 对象以进行形状检测逻辑。但它没有被调用。我什至添加了对 metaio sdk 的 'requestCameraImage()' 方法的调用。
【问题讨论】:
您是否尝试过运行 opencv 示例来检查这些示例是否有效?如果您使用的是本机抓取器;这也可能是问题所在,因为它不适用于所有手机。 我用过openCV的例子,但我想要的是metaio相机视图而不是openCV。 @Shweta24。你能找到解决这个问题的方法吗? @VizZy:不。我无法得到任何解决方案。 【参考方案1】:从 metaio 的 Hello world 示例开始:http://dev.metaio.com/sdk/tutorials/hello-world/ 在那里你可以看到示例代码如何例如在标记上绘制图形
但是 metaio 和 OpenVC 不适用于渲染部分,metaio 比 OpenCV 多一点,但它们执行应用程序的计算机视觉部分。要渲染一些东西,你必须自己编写 OpenGL 代码,或者将 metaio 的跟踪连接到一些更复杂的渲染引擎,如 jMonkey、libGDX 等。
【讨论】:
metaio的基础教程我已经看完了。 Metaio 免费版不支持边缘检测,可以通过openCV来完成。所以,我想知道,如何结合(OpenCV 和 Metaio)=> 就像我所做的是在 openCV 中使用边缘检测检测基本形状。现在我想使用 metaio 在检测到的形状上添加 3d 对象。如何做到这一点。 我认为你不能这样做,阅读使用条款,我认为你不能同时使用 OpenCV 和 metaio 计算机视觉方法 你可以做的是使用类似droidar标记跟踪器的东西:code.google.com/p/droidar/wiki/Markerdetection和youtube.com/watch?v=w5BrHLnG4no,但这意味着你需要自己用opencv编写一些跟踪逻辑以上是关于在 Android 中使用 metaio 在 openCV 中渲染 3D 对象的主要内容,如果未能解决你的问题,请参考以下文章