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¶
Public Functions¶
Public Events¶
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。