SurfaceTracker Class

这个类型是C#语言的 EasyAR Sense API: SurfaceTracker 。页面中部分描述可能与Unity环境无关。

这个类型已经部分封装进Unity组件: SurfaceTrackerFrameFilter 。在大部分情况下不需要直接使用这个类型的成员和实例。如果要使用一些没有被封装的接口,需要使用 SurfaceTrackerFrameFilter.Tracker ,而非创建新的实例。

Description

SurfaceTracker实现了对环境表面的跟踪。

SurfaceTracker占用1个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。参考 概览

创建之后,可以调用start/stop来开始和停止运行,start/stop是非常轻量的调用。

当不再需要该组件时,可以调用close对其进行关闭。close之后不应继续使用。

SurfaceTracker通过inputFrameSink输入 InputFrame ,应将 InputFrameSource 连接到inputFrameSink上进行使用。参考 概览


Methods

isAvailable

C#

public static bool isAvailable()

只在Android、iOS系统上且加速度计、陀螺仪可用时返回true。

inputFrameSink

C#

public virtual InputFrameSink inputFrameSink()

InputFrame 输入端口。InputFrame要求必须拥有图像、时间戳和camera参数。

bufferRequirement

C#

public virtual int bufferRequirement()

当前组件占用camera buffer的数量。

outputFrameSource

C#

public virtual OutputFrameSource outputFrameSource()

OutputFrame 输出端口。

create

C#

public static SurfaceTracker create()

创建。

start

C#

public virtual bool start()

开始跟踪算法。

stop

C#

public virtual void stop()

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

close

C#

public virtual void close()

关闭。close之后不应继续使用。

alignTargetToCameraImagePoint

C#

public virtual void alignTargetToCameraImagePoint( Vec2F cameraImagePoint)

将跟踪目标点对准到相机图像的指定点。图像坐标系([0, 1]^2)的x朝右、y朝下,原点在左上角。可以使用 CameraParameters.imageCoordinatesFromScreenCoordinates 来从屏幕坐标转换为图像坐标。