0

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

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

我们要实现的目标:

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

2) 我已经使用 ARToolkit 5.3.2 提供的 android studio 示例项目中开箱即用的 ARMultiProj,这就是 ARMultiProj 未能检测到多个跟踪器的地方,而是一直只跟踪一个。

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

标记数据

要识别的模式数量

6

标记 1

帕特

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.帕特

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

帕特

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

帕特

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

帕特

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

帕特

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 (native): [info]添加的标记 (UID=0),加载的标记总数: 1。

E/libARWrapper: ARController (native): [info]Marker 0 现在可见

E/libARWrapper: ARController (native): [info]Marker 0 不再可见

正如您在上面看到的,该项目能够从不同 patt 文件的 assets/data/multi 文件夹以及 camera_para.dat 和 marker.dat 跟踪和创建资产,但它不跟踪其他标记

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

问候和感谢,

甘尼山

4

1 回答 1

0

根据我收集到的信息,您对该示例项目有一点误解。它演示了“Multimarkers”的使用。有关标记的简短说明,请参见此站点。

在此处查看 AR 标记的概述

Multimarker 仅显示 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 标记示例.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

我希望这是有帮助的。

于 2016-11-15T13:41:55.777 回答