Table of Contents

Class ObjectTracker

Spazio dei nomi
easyar

ObjectTracker implementa il rilevamento e il tracking di 3D object target. ObjectTracker occupa (1 + SimultaneousNum) buffer camera. È necessario usare setBufferCapacity della camera per impostare almeno il numero di buffer camera occupati da tutti i componenti. Dopo la creazione, è possibile chiamare start/stop per avviare e arrestare l'esecuzione; start/stop sono chiamate molto leggere. Quando il componente non è più necessario, è possibile chiamare close per chiuderlo. Dopo close non deve essere più usato. ObjectTracker riceve FeedbackFrame tramite feedbackFrameSink, e FeedbackFrameSource deve essere collegato a feedbackFrameSink per l'uso. Prima che un Target possa essere tracciato da ObjectTracker, è necessario caricarlo tramite loadTarget/unloadTarget. Il risultato di load/unload può essere ottenuto tramite callback passate all'interfaccia.

ObjectTracker

Metodi

isAvailable

Restituisce true.

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()

Valore restituito

Tipo Descrizione
Boolean

feedbackFrameSink

Porta di input FeedbackFrame. Il membro InputFrame in FeedbackFrame deve avere image, timestamp e camera parameters. camera supporta camere pinhole e fisheye.

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()

Valore restituito

Tipo Descrizione
FeedbackFrameSink

bufferRequirement

Numero di buffer camera occupati dal componente corrente.

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()

Valore restituito

Tipo Descrizione
Int32

outputFrameSource

Porta di output OutputFrame.

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()

Valore restituito

Tipo Descrizione
OutputFrameSource

create

Crea un'istanza.

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()

Valore restituito

Tipo Descrizione
ObjectTracker

setResultPostProcessing

Imposta il post-processing dei risultati. enablePersistentTargetInstance è false per impostazione predefinita. Quando è abilitato, se i dati InputFrame contengono informazioni spaziali, targetInstances in ImageTrackerResult conterrà tutte le instance riconosciute, incluse quelle attualmente non tracciate. enableMotionFusion è false per impostazione predefinita. Quando è abilitato, se i dati InputFrame contengono informazioni temporali e spaziali, la pose di targetInstances in ImageTrackerResult verrà smussata 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)

Parametri

Nome Tipo Descrizione
enablePersistentTargetInstance Boolean
enableMotionFusion Boolean

Valore restituito

Tipo Descrizione
Void

setResultAsyncMode

Imposta la modalità async dei risultati. Se i risultati vengono emessi tramite outputFrameSource, deve essere impostata su true; se i risultati vengono ottenuti tramite getSyncResult, deve essere impostata su false. enableAsync è true per impostazione predefinita. La modalità sync ha effetto solo quando l'input frame contiene informazioni spaziali e viene usata una XR License.

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)

Parametri

Nome Tipo Descrizione
enableAsync Boolean

Valore restituito

Tipo Descrizione
Boolean

start

Avvia l'algoritmo di tracking.

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()

Valore restituito

Tipo Descrizione
Boolean

stop

Mette in pausa l'algoritmo di tracking. Chiamare start per riavviare il tracking.

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()

Valore restituito

Tipo Descrizione
Void

close

Chiude. Dopo close non deve essere più usato.

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()

Valore restituito

Tipo Descrizione
Void

loadTarget

Carica un Target nel tracker. Un Target può essere riconosciuto e tracciato solo dopo essere stato caricato correttamente nel tracker. Questo metodo è asynchronous. Il processo di caricamento può richiedere del tempo per completarsi. Durante questo periodo, il rilevamento di target nuovi e persi può richiedere più tempo del solito, ma il tracking dopo il rilevamento non è influenzato. Se si desidera conoscere il risultato del caricamento, è necessario gestire i dati callback. callback verrà chiamato sul thread specificato da CallbackScheduler. Il thread di tracking e le operazioni diverse da altri load/unload non verranno bloccati.

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)

Parametri

Nome Tipo Descrizione
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Valore restituito

Tipo Descrizione
Void

unloadTarget

Scarica un Target dal tracker. Questo metodo è asynchronous. Il processo di scaricamento può richiedere del tempo per completarsi. Durante questo periodo, il rilevamento di target nuovi e persi può richiedere più tempo del solito, ma il tracking dopo il rilevamento non è influenzato. Se si desidera conoscere il risultato dello scaricamento, è necessario gestire i dati callback. callback verrà chiamato sul thread specificato da CallbackScheduler. Il thread di tracking e le operazioni diverse da altri load/unload non verranno bloccati.

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)

Parametri

Nome Tipo Descrizione
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Valore restituito

Tipo Descrizione
Void

targets

Restituisce i target attualmente caricati nel tracker. Se è in esecuzione un load/unload asynchronous, il valore restituito prima del completamento di load/unload non rifletterà i risultati di tali operazioni load/unload.

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()

Valore restituito

Tipo Descrizione
List<>

setSimultaneousNum

Imposta il numero massimo di target che possono essere tracciati dal tracker. Il valore predefinito è 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)

Parametri

Nome Tipo Descrizione
num Int32

Valore restituito

Tipo Descrizione
Boolean

simultaneousNum

Ottiene il numero massimo di target che possono essere tracciati dal tracker. Il valore predefinito è 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()

Valore restituito

Tipo Descrizione
Int32

getSyncResult

Ottiene il risultato di output sincrono. Se ObjectTracker è in pausa, o se la modalità async dei risultati non è stata impostata su false tramite setResultAsyncMode, il valore restituito è vuoto.

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)

Parametri

Nome Tipo Descrizione
motionInputData MotionInputData

Valore restituito

Tipo Descrizione
Optional<ObjectTrackerResult>