Android

时间:2016-11-01 05:28:05

标签: android augmented-reality artoolkit android-augmented-reality

一个Android项目,可以读取不同的标记(多个)并为每个跟踪标记提供不同的输出(视频)。

到目前为止我们取得了哪些成就: 1)我们使用ARToolkit(ARMultiProj)中提供的示例项目来跟踪多个标记,它只跟踪一个标记。

我们还需要做些什么:

1)我们正尝试使用NFT实现多标记跟踪概念,以便在跟踪不同标记时播放不同的视频。

2)我使用了随着ARToolkit 5.3.2提供的android studio示例项目开箱即用的ARMultiProj,以及ARMultiProj未能检测到多个跟踪器的情况,而是一直跟踪一个跟踪器。

在这种情况下,下面是6个标记的立方体;

Marker.dat

要识别的模式数

6

标记1

a.patt

40.0

1.0000 0.0000 0.0000 0.0000

0.0000 1.0000 0.0000 0.0000

0.0000 0.0000 1.0000 0.0000

标记2

b.patt

40.0

1.0000 0.0000 0.0000 100.0000

0.0000 1.0000 0.0000 0.0000

0.0000 0.0000 1.0000 0.0000

标记3

c.patt

40.0

1.0000 0.0000 0.0000 200.0000

0.0000 1.0000 0.0000 0.0000

0.0000 0.0000 1.0000 0.0000

标记4

d.patt

40.0

1.0000 0.0000 0.0000 0.0000

0.0000 1.0000 0.0000 -100.0000

0.0000 0.0000 1.0000 0.0000

标记5

f.patt

40.0

1.0000 0.0000 0.0000 100.0000

0.0000 1.0000 0.0000 -100.0000

0.0000 0.0000 1.0000 0.0000

标记6

g.patt

40.0

1.0000 0.0000 0.0000 200.0000

0.0000 1.0000 0.0000 -100.0000

0.0000 0.0000 1.0000 0.0000

为了理解和方便,我在项目的下面列出了特定的日志。

日志:

E / ARToolKit:marker config():multi; Data / multi / marker.dat

E / libARWrapper:ARController(原生):[info]添加了标记(UID = 0),加载的总标记:1。

E / libARWrapper:ARController(原生):[info]标记0现在可见

E / libARWrapper:ARController(原生):[info]标记0不再可见

如上所示,该项目能够跟踪和创建不同patt文件的assets / data / multi文件夹中的资产以及camera_para.dat和marker.dat,但它不会跟踪其他标记

请向我提供一些指导,说明如何通过代码片段和ARToolkit文件中的确切更改(如果需要)实现上述场景的可能实现。提前谢谢!

问候&谢谢,

Ganeshan P

1 个答案:

答案 0 :(得分:0)

从我收集到的内容中,您对该示例项目略有误解。它演示了“多标记”的使用。 有关标记的简短说明,请参阅此站点。

Look here for a overview of AR-Markers

多标记仅显示1个对象,但只有一个标记需要完全可见。

在你的情况下,你可能最好以ARNativeOSG或nftBookProj作为基础。两个示例都具有至少两个示例标记。

ARNativeOSG用于在帧标记上显示OSG模型,但它很容易修改。只需查看assets / Data / marker.dat和assets / Data / objects.dat。这些都是文本文件。只需将您的标记放在marker.dat中,然后将它们连接到objects.dat。

如果您坚持使用NFT,请查看nftBookProj。它的妆容几乎相同。在src / main / assets / Data下查看这些文件。它们每个都包含如何使用它们的示例。意识到。尽管ARToolkit支持NFT,但我发现它并不像帧标记那样强大。

示例NFT markers.dat

# Number of markers
1  // <--- Amount of markers. Important to change if you add more

# Entries for each marker. Format is:
#
# Name of pattern file (relative to this file)
# Marker type (SINGLE)
# Marker width in millimetres (floating point number)
# Optional tokens:
#     FILTER [x]   Enable pose estimate filtering for the preceding marker
#                  x (optional) specifies the cutoff frequency. Default
#                  value is AR_FILTER_TRANS_MAT_CUTOFF_FREQ_DEFAULT, which
#                  at time of writing, equals 5.0.
# A blank line

../DataNFT/pinball // <-- Position of marker relativ to this file
NFT                // <-- Type
FILTER 15.0        // <-- Extra option. I think it reduce jittering

示例objects.dat:

2 // <-- amount of objects. Important to change

../OSG/axes.osg  //position relativ to file
0.0 0.0 0.0      //Translation in regards to the marker
0.0 1.0 0.0 0.0  //Rotation in regards to the marker
40.0 40.0 40.0   //Zoom
MARKER 1         //This refers to the Position in marker.dat
LIGHTING 0       //Some added options. Actually no idea what this does

../OSG/p51d-jw-animated.osg
4.5 118.25 30.0
90.0 1.0 0.0 0.0
25.0 25.0 25.0
MARKER 1         //This object appears together with the first on on the same marker

我希望这有用。