Class ObjectTracker
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
bool easyar_ObjectTracker_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
public static func isAvailable() -> Bool
public static bool isAvailable()
Valore restituito
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
bufferRequirement
Numero di buffer fotocamera attualmente occupati da questo componente.
int easyar_ObjectTracker_bufferRequirement(easyar_ObjectTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Valore restituito
outputFrameSource
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
create
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
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
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
start
Avvia l'algoritmo di tracking.
bool easyar_ObjectTracker_start(easyar_ObjectTracker * This)
public func start() -> Bool
public virtual bool start()
Valore restituito
stop
Sospende l'algoritmo di tracking. Chiamare start per riavviare il tracking.
void easyar_ObjectTracker_stop(easyar_ObjectTracker * This)
public func stop() -> Void
public virtual void stop()
Valore restituito
close
Chiude. Non utilizzare dopo close.
void easyar_ObjectTracker_close(easyar_ObjectTracker * This)
public func close() -> Void
public virtual void close()
Valore restituito
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
Valore restituito
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
Valore restituito
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
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
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)
public int simultaneousNum()
fun simultaneousNum(): Int
public func simultaneousNum() -> Int32
public virtual int simultaneousNum()
Valore restituito
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
Valore restituito