Table of Contents

Class ObjectTracker

Spazio dei nomi
easyar

ObjectTracker implementa il rilevamento e il tracking di target 3D object. ObjectTracker occupa buffer di (1 + SimultaneousNum) fotocamere. Impostare la capacità del buffer della fotocamera con setBufferCapacity non inferiore al numero totale di buffer occupati da tutti i componenti. Dopo la creazione, è possibile chiamare start/stop per avviare e interrompere l'esecuzione. start/stop sono chiamate molto leggere. Quando il componente non è più necessario, chiamare close per chiuderlo. Dopo close, non dovrebbe essere più utilizzato. ObjectTracker riceve input tramite feedbackFrameSink da FeedbackFrame. Collegare FeedbackFrameSource a feedbackFrameSink per l'utilizzo. Prima che un Target possa essere tracciato da ObjectTracker, è necessario caricarlo tramite loadTarget/unloadTarget. Il risultato del caricamento/scaricamento può essere ottenuto tramite callback passate nell'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 per FeedbackFrame. Il membro InputFrame di FeedbackFrame deve possedere immagine, timestamp e parametri della fotocamera. Sono supportate fotocamere 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()

Valore restituito

Tipo Descrizione
FeedbackFrameSink

bufferRequirement

Numero di buffer fotocamera attualmente occupati da questo componente.

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 per 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.

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 l'elaborazione post-risultati. enablePersistentTargetInstance è false di default. Se abilitato e i dati InputFrame contengono informazioni spaziali, le targetInstances in ImageTrackerResult includeranno tutte le istanze rilevate (anche quelle non attualmente tracciate). enableMotionFusion è false di default. Se abilitato e i dati InputFrame contengono informazioni temporali e spaziali, la pose delle targetInstances in ImageTrackerResult subirà un'elaborazione di levigatura utilizzando 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à asincrona dei risultati. Se i risultati vengono emessi tramite outputFrameSource, impostare su true. Se i risultati vengono ottenuti tramite getSyncResult, impostare su false. enableAsync è true di default. La modalità sincrona è valida solo se il frame di input contiene informazioni spaziali e viene utilizzata una licenza XR.

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

Sospende 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. Non utilizzare dopo close.

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 con successo nel tracker. Questo metodo è asincrono. Il caricamento potrebbe richiedere tempo. Durante questo periodo, il rilevamento di nuovi target o di target persi potrebbe richiedere più tempo del solito, ma il tracking dopo il rilevamento non è influenzato. Per conoscere l'esito del caricamento, gestisci i dati della callback. La callback verrà invocata sul thread specificato da CallbackScheduler. Il thread di tracking e altre operazioni (eccetto caricamento/scaricamento) 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 è asincrono. Lo scaricamento potrebbe richiedere tempo. Durante questo periodo, il rilevamento di nuovi target o di target persi potrebbe richiedere più tempo del solito, ma il tracking dopo il rilevamento non è influenzato. Per conoscere l'esito dello scaricamento, gestisci i dati della callback. La callback verrà invocata sul thread specificato da CallbackScheduler. Il thread di tracking e altre operazioni (eccetto caricamento/scaricamento) 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 sono in corso operazioni asincrone di caricamento/scaricamento, il valore restituito non rifletterà questi risultati fino al loro completamento.

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 il tracker può tracciare contemporaneamente. 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 il tracker può tracciare contemporaneamente. 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. Restituisce null se ObjectTracker è sospeso o se la modalità asincrona dei risultati non è stata impostata su false tramite setResultAsyncMode.

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>