Table of Contents

Class ImageTracker

Spazio dei nomi
easyar

ImageTracker implementa il rilevamento e il tracking di carte piane. ImageTracker occupa (1 + SimultaneousNum) buffer della camera. Dovrebbe usare setBufferCapacity della camera per impostare un numero di buffer della camera non inferiore a quello occupato da tutti i componenti. Dopo la creazione, è possibile chiamare start/stop per iniziare e fermare l'esecuzione; start/stop sono chiamate molto leggere. Quando il componente non è più necessario, è possibile chiamare close per chiuderlo. Dopo close, non dovrebbe essere più utilizzato. ImageTracker riceve input tramite feedbackFrameSink FeedbackFrame; FeedbackFrameSource dovrebbe essere connesso a feedbackFrameSink per l'uso. Prima che Target possa essere tracciato da ImageTracker, è necessario caricarlo tramite loadTarget/unloadTarget. È possibile ottenere i risultati di load/unload tramite callback dell'interfaccia.

ImageTracker

Metodi

isAvailable

Restituisce true.

bool easyar_ImageTracker_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

FeedbackFrame porta di input. Il membro InputFrame in FeedbackFrame deve avere immagine, timestamp e parametri della camera; la camera supporta fotocamere a foro stenopeico e fish-eye.

void easyar_ImageTracker_feedbackFrameSink(easyar_ImageTracker * 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 della camera occupati dal componente corrente.

int easyar_ImageTracker_bufferRequirement(easyar_ImageTracker * 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

OutputFrame porta di output.

void easyar_ImageTracker_outputFrameSource(easyar_ImageTracker * 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. La modalità di tracking predefinita è ImageTrackerMode.PreferQuality.

void easyar_ImageTracker_create(easyar_ImageTracker * * Return)
static std::shared_ptr<ImageTracker> create()
public static @Nonnull ImageTracker create()
companion object fun create(): ImageTracker
+ (easyar_ImageTracker *)create
public static func create() -> ImageTracker
public static ImageTracker create()

Valore restituito

Tipo Descrizione
ImageTracker

createWithMode

Crea con una modalità di tracking specifica. Su telefoni di fascia bassa, è possibile usare ImageTrackerMode.PreferPerformance per ottenere prestazioni migliori, ma con una leggera perdita nella qualità del tracking.

void easyar_ImageTracker_createWithMode(easyar_ImageTrackerMode trackMode, easyar_ImageTracker * * Return)
static std::shared_ptr<ImageTracker> createWithMode(ImageTrackerMode trackMode)
public static @Nonnull ImageTracker createWithMode(int trackMode)
companion object fun createWithMode(trackMode: Int): ImageTracker
+ (easyar_ImageTracker *)createWithMode:(easyar_ImageTrackerMode)trackMode
public static func createWithMode(_ trackMode: ImageTrackerMode) -> ImageTracker
public static ImageTracker createWithMode(ImageTrackerMode trackMode)

Parametri

Nome Tipo Descrizione
trackMode ImageTrackerMode

Valore restituito

Tipo Descrizione
ImageTracker

createWithConfig

Crea con una configurazione specifica.

void easyar_ImageTracker_createWithConfig(easyar_ImageTrackerConfig * config, easyar_ImageTracker * * Return)
static std::shared_ptr<ImageTracker> createWithConfig(std::shared_ptr<ImageTrackerConfig> config)
public static @Nonnull ImageTracker createWithConfig(@Nonnull ImageTrackerConfig config)
companion object fun createWithConfig(config: ImageTrackerConfig): ImageTracker
+ (easyar_ImageTracker *)createWithConfig:(easyar_ImageTrackerConfig *)config
public static func createWithConfig(_ config: ImageTrackerConfig) -> ImageTracker
public static ImageTracker createWithConfig(ImageTrackerConfig config)

Parametri

Nome Tipo Descrizione
config ImageTrackerConfig

Valore restituito

Tipo Descrizione
ImageTracker

setResultPostProcessing

Imposta la post-elaborazione dei risultati. enablePersistentTargetInstance è false di default; quando abilitato, se i dati di InputFrame contengono informazioni spaziali, targetInstances in ImageTrackerResult conterrà tutte le istanze rilevate (incluse quelle non tracciate al momento). enableMotionFusion è false di default; quando abilitato, se i dati di InputFrame contengono informazioni temporali e spaziali, la pose di targetInstances in ImageTrackerResult verrà elaborata con RealTimeCoordinateTransform.

void easyar_ImageTracker_setResultPostProcessing(easyar_ImageTracker * 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 è effettiva solo se il frame di input contiene informazioni spaziali e viene utilizzata la licenza XR.

bool easyar_ImageTracker_setResultAsyncMode(easyar_ImageTracker * 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_ImageTracker_start(easyar_ImageTracker * 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_ImageTracker_stop(easyar_ImageTracker * 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 dovrebbe essere più utilizzato.

void easyar_ImageTracker_close(easyar_ImageTracker * 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. Target può essere riconosciuto e tracciato solo dopo essere stato caricato con successo nel tracker. Questo metodo è asincrono. Il processo di caricamento potrebbe richiedere del tempo; durante questo periodo, il rilevamento di nuovi target e di target persi potrebbe 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 di callback. Il callback verrà chiamato sul thread specificato da CallbackScheduler. Il thread di tracking e le operazioni diverse da altri caricamenti/scaricamenti non saranno bloccati.

void easyar_ImageTracker_loadTarget(easyar_ImageTracker * 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 Target dal tracker. Questo metodo è asincrono. Il processo di scaricamento potrebbe richiedere del tempo; durante questo periodo, il rilevamento di nuovi target e di target persi potrebbe 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 di callback. Il callback verrà chiamato sul thread specificato da CallbackScheduler. Il thread di tracking e le operazioni diverse da altri caricamenti/scaricamenti non saranno bloccati.

void easyar_ImageTracker_unloadTarget(easyar_ImageTracker * 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 un caricamento/scaricamento asincrono è in corso, il valore restituito prima del completamento non rifletterà i risultati di tali operazioni.

void easyar_ImageTracker_targets(const easyar_ImageTracker * 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 obiettivi che possono essere tracciati dal tracker. Il valore predefinito è 1.

bool easyar_ImageTracker_setSimultaneousNum(easyar_ImageTracker * 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 obiettivi che possono essere tracciati dal tracker. Il valore predefinito è 1.

int easyar_ImageTracker_simultaneousNum(const easyar_ImageTracker * 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 ImageTracker è sospeso o se la modalità asincrona dei risultati non è impostata su false tramite setResultAsyncMode, il valore restituito è vuoto.

void easyar_ImageTracker_getSyncResult(easyar_ImageTracker * This, easyar_MotionInputData * motionInputData, easyar_OptionalOfImageTrackerResult * Return)
std::optional<std::shared_ptr<ImageTrackerResult>> getSyncResult(std::shared_ptr<MotionInputData> motionInputData)
public @Nullable ImageTrackerResult getSyncResult(@Nonnull MotionInputData motionInputData)
fun getSyncResult(motionInputData: MotionInputData): ImageTrackerResult?
- (easyar_ImageTrackerResult *)getSyncResult:(easyar_MotionInputData *)motionInputData
public func getSyncResult(_ motionInputData: MotionInputData) -> ImageTrackerResult?
public virtual Optional<ImageTrackerResult> getSyncResult(MotionInputData motionInputData)

Parametri

Nome Tipo Descrizione
motionInputData MotionInputData

Valore restituito

Tipo Descrizione
Optional<ImageTrackerResult>