Table of Contents

Class ObjectTracker

Espaço de nomes
easyar

ObjectTracker implementa a detecção e rastreamento de alvos de objetos 3D. ObjectTracker ocupa (1 + SimultaneousNum) buffers de câmera. Deve usar setBufferCapacity da câmera para definir não menos do que o número de buffers de câmera ocupados por todos os componentes. Após a criação, você pode chamar start/stop para iniciar e parar a execução, start/stop são chamadas muito leves. Quando o componente não for mais necessário, você pode chamar close para fechá-lo. Após close, não deve continuar a usar. ObjectTracker recebe entrada através de feedbackFrameSink FeedbackFrame, deve conectar FeedbackFrameSource ao feedbackFrameSink para uso. Antes que Target possa ser rastreado pelo ObjectTracker, você precisa carregá-lo através de loadTarget/unloadTarget. Você pode obter os resultados de load/unload através de callbacks passados pela interface.

ObjectTracker

Métodos

isAvailable

Retorna verdadeiro.

bool easyar_ObjectTracker_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
+ (bool)isAvailable
public static func isAvailable() -> Bool
public static bool isAvailable()

Retorna

Tipo Descrição
Boolean

feedbackFrameSink

FeedbackFrame porta de entrada. O membro InputFrame em FeedbackFrame deve ter imagem, timestamp e parâmetros da câmera, a câmera suporta câmeras de pinhole e fish-eye.

void easyar_ObjectTracker_feedbackFrameSink(easyar_ObjectTracker * This, easyar_FeedbackFrameSink * * Return)
std::shared_ptr<FeedbackFrameSink> feedbackFrameSink()
public @Nonnull FeedbackFrameSink feedbackFrameSink()
fun feedbackFrameSink(): FeedbackFrameSink
- (easyar_FeedbackFrameSink *)feedbackFrameSink
public func feedbackFrameSink() -> FeedbackFrameSink
public virtual FeedbackFrameSink feedbackFrameSink()

Retorna

Tipo Descrição
FeedbackFrameSink

bufferRequirement

Quantidade de buffers de câmera ocupados pelo componente atual.

int easyar_ObjectTracker_bufferRequirement(easyar_ObjectTracker * This)
int bufferRequirement()
public int bufferRequirement()
fun bufferRequirement(): Int
- (int)bufferRequirement
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()

Retorna

Tipo Descrição
Int32

outputFrameSource

OutputFrame porta de saída.

void easyar_ObjectTracker_outputFrameSource(easyar_ObjectTracker * This, easyar_OutputFrameSource * * Return)
std::shared_ptr<OutputFrameSource> outputFrameSource()
public @Nonnull OutputFrameSource outputFrameSource()
fun outputFrameSource(): OutputFrameSource
- (easyar_OutputFrameSource *)outputFrameSource
public func outputFrameSource() -> OutputFrameSource
public virtual OutputFrameSource outputFrameSource()

Retorna

Tipo Descrição
OutputFrameSource

create

Criar.

void easyar_ObjectTracker_create(easyar_ObjectTracker * * Return)
static std::shared_ptr<ObjectTracker> create()
public static @Nonnull ObjectTracker create()
companion object fun create(): ObjectTracker
+ (easyar_ObjectTracker *)create
public static func create() -> ObjectTracker
public static ObjectTracker create()

Retorna

Tipo Descrição
ObjectTracker

setResultPostProcessing

Configurar pós-processamento de resultados. enablePersistentTargetInstance padrão é falso, quando ativado, se os dados de InputFrame contiverem informações espaciais, então targetInstances em ImageTrackerResult incluirão todas as instâncias detectadas (incluindo as não rastreadas atualmente). enableMotionFusion padrão é falso, quando ativado, se os dados de InputFrame contiverem informações temporais e espaciais, então a pose de targetInstances em ImageTrackerResult será suavizada usando RealTimeCoordinateTransform.

void easyar_ObjectTracker_setResultPostProcessing(easyar_ObjectTracker * This, bool enablePersistentTargetInstance, bool enableMotionFusion)
void setResultPostProcessing(bool enablePersistentTargetInstance, bool enableMotionFusion)
public void setResultPostProcessing(boolean enablePersistentTargetInstance, boolean enableMotionFusion)
fun setResultPostProcessing(enablePersistentTargetInstance: Boolean, enableMotionFusion: Boolean): Unit
- (void)setResultPostProcessing:(bool)enablePersistentTargetInstance enableMotionFusion:(bool)enableMotionFusion
public func setResultPostProcessing(_ enablePersistentTargetInstance: Bool, _ enableMotionFusion: Bool) -> Void
public virtual void setResultPostProcessing(bool enablePersistentTargetInstance, bool enableMotionFusion)

Parâmetros

Nome Tipo Descrição
enablePersistentTargetInstance Boolean
enableMotionFusion Boolean

Retorna

Tipo Descrição
Void

setResultAsyncMode

Define o modo assíncrono do resultado. Se o resultado for emitido via outputFrameSource, defina como true; se o resultado for obtido via getSyncResult, defina como false. Por padrão, enableAsync é true. O modo síncrono só é eficaz quando o frame de entrada contém informações espaciais e uma licença XR é usada.

bool easyar_ObjectTracker_setResultAsyncMode(easyar_ObjectTracker * This, bool enableAsync)
bool setResultAsyncMode(bool enableAsync)
public boolean setResultAsyncMode(boolean enableAsync)
fun setResultAsyncMode(enableAsync: Boolean): Boolean
- (bool)setResultAsyncMode:(bool)enableAsync
public func setResultAsyncMode(_ enableAsync: Bool) -> Bool
public virtual bool setResultAsyncMode(bool enableAsync)

Parâmetros

Nome Tipo Descrição
enableAsync Boolean

Retorna

Tipo Descrição
Boolean

start

Iniciar o algoritmo de rastreamento.

bool easyar_ObjectTracker_start(easyar_ObjectTracker * This)
bool start()
public boolean start()
fun start(): Boolean
- (bool)start
public func start() -> Bool
public virtual bool start()

Retorna

Tipo Descrição
Boolean

stop

Pausar o algoritmo de rastreamento. Chame start para reiniciar o rastreamento.

void easyar_ObjectTracker_stop(easyar_ObjectTracker * This)
void stop()
public void stop()
fun stop(): Unit
- (void)stop
public func stop() -> Void
public virtual void stop()

Retorna

Tipo Descrição
Void

close

Fecha. Após close, não deve ser usado continuamente.

void easyar_ObjectTracker_close(easyar_ObjectTracker * This)
void close()
public void close()
fun close(): Unit
- (void)close
public func close() -> Void
public virtual void close()

Retorna

Tipo Descrição
Void

loadTarget

Carregar um Target no tracker. Target só pode ser reconhecido e rastreado após ser carregado com sucesso no tracker. Este método é assíncrono. O processo de carregamento pode levar algum tempo, durante o qual a detecção de novos e perdidos targets pode levar mais tempo do que o normal, mas o rastreamento após a detecção não é afetado. Se você deseja saber o resultado do carregamento, precisa processar os dados de callback. O callback será chamado no thread especificado por CallbackScheduler. O thread de rastreamento e outras operações, exceto outros carregamentos/descarregamentos, não serão bloqueados.

void easyar_ObjectTracker_loadTarget(easyar_ObjectTracker * This, easyar_Target * target, easyar_CallbackScheduler * callbackScheduler, easyar_FunctorOfVoidFromTargetAndBool callback)
void loadTarget(std::shared_ptr<Target> target, std::shared_ptr<CallbackScheduler> callbackScheduler, std::function<void(std::shared_ptr<Target>, bool)> callback)
public void loadTarget(@Nonnull Target target, @Nonnull CallbackScheduler callbackScheduler, @Nonnull FunctorOfVoidFromTargetAndBool callback)
fun loadTarget(target: Target, callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromTargetAndBool): Unit
- (void)loadTarget:(easyar_Target *)target callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_Target * target, bool status))callback
public func loadTarget(_ target: Target, _ callbackScheduler: CallbackScheduler, _ callback: @escaping (Target, Bool) -> Void) -> Void
public virtual void loadTarget(Target target, CallbackScheduler callbackScheduler, Action<Target, bool> callback)

Parâmetros

Nome Tipo Descrição
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Retorna

Tipo Descrição
Void

unloadTarget

Descarregar Target do tracker. Este método é assíncrono. O processo de descarregamento pode levar algum tempo, durante o qual a detecção de novos e perdidos targets pode levar mais tempo do que o normal, mas o rastreamento após a detecção não é afetado. Se você deseja saber o resultado do descarregamento, precisa processar os dados de callback. O callback será chamado no thread especificado por CallbackScheduler. O thread de rastreamento e outras operações, exceto outros carregamentos/descarregamentos, não serão bloqueados.

void easyar_ObjectTracker_unloadTarget(easyar_ObjectTracker * This, easyar_Target * target, easyar_CallbackScheduler * callbackScheduler, easyar_FunctorOfVoidFromTargetAndBool callback)
void unloadTarget(std::shared_ptr<Target> target, std::shared_ptr<CallbackScheduler> callbackScheduler, std::function<void(std::shared_ptr<Target>, bool)> callback)
public void unloadTarget(@Nonnull Target target, @Nonnull CallbackScheduler callbackScheduler, @Nonnull FunctorOfVoidFromTargetAndBool callback)
fun unloadTarget(target: Target, callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromTargetAndBool): Unit
- (void)unloadTarget:(easyar_Target *)target callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_Target * target, bool status))callback
public func unloadTarget(_ target: Target, _ callbackScheduler: CallbackScheduler, _ callback: @escaping (Target, Bool) -> Void) -> Void
public virtual void unloadTarget(Target target, CallbackScheduler callbackScheduler, Action<Target, bool> callback)

Parâmetros

Nome Tipo Descrição
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Retorna

Tipo Descrição
Void

targets

Retorna os targets atualmente carregados no tracker. Se carregamentos/descarregamentos assíncronos estiverem em execução, o valor retornado antes da conclusão não refletirá os resultados desses carregamentos/descarregamentos.

void easyar_ObjectTracker_targets(const easyar_ObjectTracker * This, easyar_ListOfTarget * * Return)
std::vector<std::shared_ptr<Target>> targets()
public java.util.@Nonnull ArrayList<@Nonnull Target> targets()
fun targets(): ArrayList<Target>
- (NSArray<easyar_Target *> *)targets
public func targets() -> [Target]
public virtual List<Target> targets()

Retorna

Tipo Descrição
List<>

setSimultaneousNum

Definir o número máximo de alvos que podem ser rastreados pelo tracker. O valor padrão é 1.

bool easyar_ObjectTracker_setSimultaneousNum(easyar_ObjectTracker * This, int num)
bool setSimultaneousNum(int num)
public boolean setSimultaneousNum(int num)
fun setSimultaneousNum(num: Int): Boolean
- (bool)setSimultaneousNum:(int)num
public func setSimultaneousNum(_ num: Int32) -> Bool
public virtual bool setSimultaneousNum(int num)

Parâmetros

Nome Tipo Descrição
num Int32

Retorna

Tipo Descrição
Boolean

simultaneousNum

Obter o número máximo de alvos que podem ser rastreados pelo tracker. O valor padrão é 1.

int easyar_ObjectTracker_simultaneousNum(const easyar_ObjectTracker * This)
int simultaneousNum()
public int simultaneousNum()
fun simultaneousNum(): Int
- (int)simultaneousNum
public func simultaneousNum() -> Int32
public virtual int simultaneousNum()

Retorna

Tipo Descrição
Int32

getSyncResult

Obter resultados de saída síncronos. Se ObjectTracker estiver pausado, ou se o modo assíncrono de resultados não for definido como falso através de setResultAsyncMode, o valor retornado será nulo.

void easyar_ObjectTracker_getSyncResult(easyar_ObjectTracker * This, easyar_MotionInputData * motionInputData, easyar_OptionalOfObjectTrackerResult * Return)
std::optional<std::shared_ptr<ObjectTrackerResult>> getSyncResult(std::shared_ptr<MotionInputData> motionInputData)
public @Nullable ObjectTrackerResult getSyncResult(@Nonnull MotionInputData motionInputData)
fun getSyncResult(motionInputData: MotionInputData): ObjectTrackerResult?
- (easyar_ObjectTrackerResult *)getSyncResult:(easyar_MotionInputData *)motionInputData
public func getSyncResult(_ motionInputData: MotionInputData) -> ObjectTrackerResult?
public virtual Optional<ObjectTrackerResult> getSyncResult(MotionInputData motionInputData)

Parâmetros

Nome Tipo Descrição
motionInputData MotionInputData

Retorna

Tipo Descrição
Optional<ObjectTrackerResult>