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参数。
注意: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 来从屏幕坐标转换为图像坐标。