ImageTracker Class

Inherits: Base

Description

ImageTracker实现了target的检测和跟踪。

ImageTracker检测和跟踪 ImageTarget 。你需要首先调用AttachCamera将 CameraDevice 连接至 ImageTracker,然后CameraDevice的输出图像将被tracker使用。你可以通过Start/Stop来开始和停止跟踪。St art和Stop是非常轻量的调用。

在Target可以被ImageTracker跟踪之前,你需要通过异步方法LoadTarget/UnloadTarget或同步方法LoadTa rgetBlocked/UnloadTargetBlocked将它载入。如果你需要非阻塞的调用,推荐使用异步的接口。你可以在TargetLo ad/TargetUnload事件中获取load/unload的结果。

你可以使用 Augmenter.newFrame 来获取一帧 Frame 。Frame中包含当前的camera图像和跟踪到的 AugmentedTarget

Public Properties

List<Target> Targets int SimultaneousNum (since 1.3.0)

Public Functions

ImageTracker()
bool AttachCamera(CameraDevice cam)
bool DetachCamera(CameraDevice cam)
bool Start()
bool Stop()
void LoadTarget(Target target)
bool LoadTargetBlocked(Target target)
void UnloadTarget(Target target)
bool UnloadTargetBlocked(Target target)

Public Events

Action<ImageTracker, Target, bool> TargetLoad
Action<ImageTracker, Target, bool> TargetUnload

ImageTracker()

创建ImageTracker实例。

List<Target> Targets

当前已经被加载进入tracker的target。如果异步的加载/卸载正在执行,在加载/卸载完成之前的返回值将不会反应这些加载/卸载的结果。

int SimultaneousNum (since 1.3.0)

最大可被tracker跟踪的目标个数。默认值为1。

bool AttachCamera(CameraDevice cam)

将CameraDevice连接到ImageTracker。在有CameraDevice连接之前,ImageTracker不会开始运行跟踪。

bool DetachCamera(CameraDevice cam)

从ImageTracker断开CameraDevice的连接。在连接断开之后,ImageTracker将不会再从CameraDevice中获 取图像,跟踪过程会在没有任何CameraDevice连接的时候停止。

bool Start()

开始跟踪算法。在有CameraDevice连接之前跟踪不会真正开始。

bool Stop()

停止跟踪算法。调用start来重新启动跟踪。

void LoadTarget(Target target)

加载一个 Target 进入tracker。Target只有在成功加载进入ImageTracker之后才能被识别和跟踪。

这个方法是异步方法。加载过程可能会需要一些时间来完成,这段时间内新的和丢失的target的检测可能会花比平时更多的时间,但是检测到之后的跟踪 不受影响。加载的结果可以在TargetLoad事件中得到。

bool LoadTargetBlocked(Target target)

加载一个 Target 进入tracker。Target只有在成功加载进入ImageTracker之后才能被识别和跟踪。

这是个同步方法。加载过程可能会需要一些时间来完成,这段时间内新的和丢失的target的检测可能会花比平时更多的时间,但是检测到之后的跟踪不受 影响。它会阻塞调用线程。但是跟踪线程以及camera线程等不会被阻塞。

void UnloadTarget(Target target)

从tracker中卸载 Target

这个方法是异步方法。卸载过程可能会需要一些时间来完成,这段时间内新的和丢失的target的检测可能会花比平时更多的时间,但是检测到之后的跟踪 不受影响。卸载的结果可以在TargetUnload事件中得到。

bool UnloadTargetBlocked(Target target)

从tracker中卸载 Target

这是个同步方法。卸载过程可能会需要一些时间来完成,这段时间内新的和丢失的target的检测可能会花比平时更多的时间,但是检测到之后的跟踪不受 影响。它会阻塞调用线程。但是跟踪线程以及camera线程等不会被阻塞。

event Action<ImageTracker, Target, bool> TargetLoad

target加载完成的事件。如果加载成功 status 为true否则为false。

event Action<ImageTracker, Target, bool> TargetUnload

target卸载完成的事件。如果卸载成功 status 为true否则为false。