2

我正在尝试检测网络摄像头视频源中的标记并用 3d 对象覆盖它 - 几乎就像这样:http ://www.morethantechnical.com/2009/06/28/augmented-reality-with-nyartoolkit- opencv-opengl/

我知道artoolkit是最好的模块,但我希望只在python中使用opencv,因为我不知道几乎足够的c/c++能够使用artoolkit。我希望有人能够让我走上正确的轨道来检测标记并确定其位置和方向等,因为我不知道如何最好地解决这个问题或我应该使用什么功能。

4

2 回答 2

2

OpenCV 没有开箱即用的标记检测/跟踪功能。然而,它提供了所有需要的算法,所以很容易实现你自己的算法。您所指的文章仅将 OpenCV 用于视频抓取。标记检测由源自 ARToolkit 的 NyARToolkit 完成。NyARToolkit 有 Java、C# 和 ActionScript 版本。

ARToolkit 大部分是用纯 C 编写的,没有使用花哨的 C++ 特性。它可能比您想象的更容易使用。该文档包含解释清楚的教程。例如http://www.hitl.washington.edu/artoolkit/documentation/devstartup.htm

即使您决定不使用 ARToolkit,介绍性文档也可以帮助您了解标记检测的过程。

于 2010-05-01T03:16:54.307 回答
0

我认为使用 python 和 open CV 执行标记检测的最常用方法是使用 SURF Descriptors。我发现这个视频和你可以在这个页面中找到的链接代码非常有用。在这里你可以下载代码。我不知道如何用 3d 对象覆盖它,但我相信你可以用 pygame 或 matplotlib 做一些事情。

于 2013-10-27T18:35:36.933 回答