Class ImageTracker
ImageTracker implementiert die Erkennung und Verfolgung von ebenen Karten.
ImageTracker belegt (1 + SimultaneousNum) Camera-Buffer. Die setBufferCapacity der Kamera sollte auf mindestens die Anzahl aller von Komponenten belegten Camera-Buffer eingestellt werden.
Nach der Erstellung können start/stop aufgerufen werden, um den Betrieb zu starten/beenden. start/stop sind sehr ressourcenschonende Aufrufe.
Wenn die Komponente nicht mehr benötigt wird, kann close aufgerufen werden. Nach close sollte sie nicht weiter verwendet werden.
ImageTracker empfängt FeedbackFrame über feedbackFrameSink. FeedbackFrameSource sollte mit feedbackFrameSink verbunden werden.
Bevor ein Target von ImageTracker verfolgt werden kann, muss es über loadTarget/unloadTarget geladen werden. Ergebnisse des Ladens/Entladens können über Callback-Schnittstellen abgerufen werden.
ImageTracker
Methoden
isAvailable
bool easyar_ImageTracker_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
public static func isAvailable() -> Bool
public static bool isAvailable()
Rückgabewert
feedbackFrameSink
FeedbackFrame Eingangsport. Das InputFrame-Mitglied in FeedbackFrame muss Bild, Zeitstempel und Kameraparameter enthalten. Unterstützt Loch- und Fischaugenkameras.
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()
Rückgabewert
bufferRequirement
Anzahl der derzeit belegten Kamera-Buffer.
int easyar_ImageTracker_bufferRequirement(easyar_ImageTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Rückgabewert
outputFrameSource
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()
Rückgabewert
create
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()
Rückgabewert
createWithMode
Erstellt mit spezifischem Verfolgungsmodus. Auf Low-End-Geräten kann ImageTrackerMode.PreferPerformance für bessere Leistung verwendet werden, allerdings mit leicht reduzierter Trackingqualität.
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)
Parameter
Rückgabewert
createWithConfig
Erstellt mit spezifischer Konfiguration.
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)
Parameter
Rückgabewert
setResultPostProcessing
Setzt die Ergebnisnachbearbeitung.
enablePersistentTargetInstance ist standardmäßig false. Bei Aktivierung enthalten die targetInstances in ImageTrackerResult alle erkannten Instanzen (auch aktuell nicht verfolgte), wenn InputFrame Raumdaten enthält.
enableMotionFusion ist standardmäßig false. Bei Aktivierung werden die Posen der targetInstances in ImageTrackerResult mit RealTimeCoordinateTransform verarbeitet, wenn InputFrame Zeit- und Raumdaten enthält.
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)
Parameter
| Name |
Typ |
Beschreibung |
| enablePersistentTargetInstance |
Boolean |
|
| enableMotionFusion |
Boolean |
|
Rückgabewert
setResultAsyncMode
Setzt den asynchronen Ergebnis-Modus. Bei Ausgabe über outputFrameSource auf true setzen, bei Abruf über getSyncResult auf false. Standardwert (enableAsync) ist true. Synchronmodus funktioniert nur bei Eingabeframes mit Raumdaten und XR-Lizenz.
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)
Parameter
| Name |
Typ |
Beschreibung |
| enableAsync |
Boolean |
|
Rückgabewert
start
Startet den Tracking-Algorithmus.
bool easyar_ImageTracker_start(easyar_ImageTracker * This)
public func start() -> Bool
public virtual bool start()
Rückgabewert
stop
Pausiert den Tracking-Algorithmus. Mit start neu starten.
void easyar_ImageTracker_stop(easyar_ImageTracker * This)
public func stop() -> Void
public virtual void stop()
Rückgabewert
close
Schließt die Komponente. Nach close nicht weiter verwenden.
void easyar_ImageTracker_close(easyar_ImageTracker * This)
public func close() -> Void
public virtual void close()
Rückgabewert
loadTarget
Lädt ein Target in den Tracker. Target kann erst erkannt/verfolgt werden, nachdem es erfolgreich geladen wurde.
Asynchroner Vorgang. Das Laden kann Zeit benötigen. Währenddessen kann die Erkennung neuer/verlorener Targets länger dauern, die Verfolgung erkannte Targets bleibt unbeeinträchtigt. Ergebnisse werden über Callback im durch CallbackScheduler festgelegten Thread zurückgegeben. Tracking-Thread und andere Operationen (außer Laden/Entladen) werden nicht blockiert.
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)
Parameter
Rückgabewert
unloadTarget
Entlädt ein Target aus dem Tracker.
Asynchroner Vorgang. Das Entladen kann Zeit benötigen. Währenddessen kann die Erkennung neuer/verlorener Targets länger dauern. Ergebnisse werden über Callback im durch CallbackScheduler festgelegten Thread zurückgegeben. Tracking-Thread und andere Operationen (außer Laden/Entladen) werden nicht blockiert.
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)
Parameter
Rückgabewert
targets
Gibt aktuell im Tracker geladene Targets zurück. Bei laufenden asynchronen Lade-/Entladevorgängen spiegelt der Rückgabewert diese erst nach Abschluss wider.
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()
Rückgabewert
setSimultaneousNum
Setzt die maximale Anzahl gleichzeitig verfolgbarer Targets. Standardwert ist 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)
Parameter
| Name |
Typ |
Beschreibung |
| num |
Int32 |
|
Rückgabewert
simultaneousNum
Gibt die maximale Anzahl gleichzeitig verfolgbarer Targets zurück. Standardwert ist 1.
int easyar_ImageTracker_simultaneousNum(const easyar_ImageTracker * This)
public int simultaneousNum()
fun simultaneousNum(): Int
public func simultaneousNum() -> Int32
public virtual int simultaneousNum()
Rückgabewert
getSyncResult
Ruft Ergebnisse synchron ab. Gibt leeren Wert zurück, wenn ImageTracker pausiert ist oder der asynchrone Modus nicht via setResultAsyncMode auf false gesetzt wurde.
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)
Parameter
Rückgabewert