2014-02-06 37 views
18

我正在开发一个应用程序,我正在使用opencv来检测相机图像中的形状,并且想要在这些形状上显示由metaio渲染的3D对象。这怎么能实现?我尝试过自定义渲染,但'onNewCameraFrame'方法没有被调用。使用Android中的metaio在openCV中进行3D对象渲染

我必须将我们在'onNewCameraFrame()'方法中获得的每个相机帧转换为Mat对象以进行形状检测逻辑。但它没有被调用。我甚至添加了对metaio sdk的'requestCameraImage()'方法的调用。

+0

您是否尝试过运行opencv示例以检查它们是否工作? 如果您使用本机抓取器;这也可能是问题,因为它不适用于所有手机。 – Nallath

+0

我已经使用openCV的例子,但我想要的是metaio相机视图,而不是openCV。 – Shweta24

+0

@ Shweta24。你能找到解决这个问题的办法吗? – VizZy

回答

2

以metaio开始的Hello world示例:http://dev.metaio.com/sdk/tutorials/hello-world/在那里您可以看到示例代码如何执行在标记上渲染一个图形

但是metaio和OpenVC不适用于渲染部分,很好的metaio稍微比OpenCV多一点,但它们是计算机视觉应用程序的一部分。要呈现你自己必须编写OpenGL代码的东西,或者将metaio的跟踪引入一些更复杂的呈现引擎,如jMonkey,libGDX等。

+0

我已经经历了metaio的基本教程。 Metaio免费版不支持边缘检测,可以通过openCV完成。所以,我想知道,(OpenCV和Metaio)如何组合=>就像我在openCV中使用边缘检测时检测到的基本形状一样。现在我想使用metaio在检测到的形状上添加三维对象。如何才能做到这一点。 – Shweta24

+0

我认为你不能这样做,阅读使用条款,我认为你不能同时使用OpenCV和metaio计算机视觉方法 –

+0

你可以做的是使用类似droidar标记跟踪器的东西:https ://code.google.com/p/droidar/wiki/Markerdetection和https://www.youtube.com/watch?v=w5BrHLnG4no,但这意味着您需要自己编写一些跟opencv的跟踪逻辑 –