Class ObjectTracker
ObjectTracker implementiert die Erkennung und Verfolgung von 3D-Object-Targets.
ObjectTracker belegt (1 + SimultaneousNum) Camera-Buffer. Verwenden Sie setBufferCapacity der Kamera, um mindestens die Anzahl aller von Komponenten belegten Camera-Buffer festzulegen.
Nach der Erstellung können Sie start/stop aufrufen, um den Betrieb zu starten und zu stoppen. start/stop sind sehr leichtgewichtige Aufrufe.
Wenn die Komponente nicht mehr benötigt wird, können Sie close zum Schließen aufrufen. Nach close sollte sie nicht weiter verwendet werden.
ObjectTracker empfängt FeedbackFrame über feedbackFrameSink. Verbinden Sie FeedbackFrameSource mit feedbackFrameSink zur Nutzung.
Bevor ein Target von ObjectTracker verfolgt werden kann, müssen Sie es via loadTarget/unloadTarget laden. Ergebnisse des Ladens/Entladens können über Callback-Schnittstellen abgerufen werden.
ObjectTracker
Methoden
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()
Rückgabewert
feedbackFrameSink
FeedbackFrame Eingangsport. Das InputFrame-Mitglied in FeedbackFrame muss Bild, Zeitstempel und Kameraparameter enthalten. Unterstützt Loch- und Fischaugenkameras.
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()
Rückgabewert
bufferRequirement
Anzahl der derzeit von der Komponente belegten Camera-Buffer.
int easyar_ObjectTracker_bufferRequirement(easyar_ObjectTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Rückgabewert
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()
Rückgabewert
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()
Rückgabewert
setResultPostProcessing
Konfiguriert die Ergebnisnachbearbeitung.
enablePersistentTargetInstance ist standardmäßig false. Wenn aktiviert und InputFrame räumliche Informationen enthält, umfassen targetInstances in ImageTrackerResult alle erkannten Instanzen (einschließlich aktuell nicht verfolgter).
enableMotionFusion ist standardmäßig false. Wenn aktiviert und InputFrame Zeit- und Raumdaten enthält, werden Posen der targetInstances in ImageTrackerResult mittels RealTimeCoordinateTransform geglättet.
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)
Parameter
| Name |
Typ |
Beschreibung |
| enablePersistentTargetInstance |
Boolean |
|
| enableMotionFusion |
Boolean |
|
Rückgabewert
setResultAsyncMode
Setzt den asynchronen Ergebnismodus. Bei Ausgabe über outputFrameSource auf true setzen, bei Abruf via getSyncResult auf false. Standard (enableAsync) ist true. Synchronmodus funktioniert nur bei räumlichen Eingangsdaten und XR-Lizenz.
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)
Parameter
| Name |
Typ |
Beschreibung |
| enableAsync |
Boolean |
|
Rückgabewert
start
Startet den Tracking-Algorithmus.
bool easyar_ObjectTracker_start(easyar_ObjectTracker * This)
public func start() -> Bool
public virtual bool start()
Rückgabewert
stop
Pausiert den Tracking-Algorithmus. Rufen Sie start zum Neustart auf.
void easyar_ObjectTracker_stop(easyar_ObjectTracker * This)
public func stop() -> Void
public virtual void stop()
Rückgabewert
close
Schließt. Nach close nicht weiter verwenden.
void easyar_ObjectTracker_close(easyar_ObjectTracker * 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, wenn der Ladevorgang erfolgreich ist.
Asynchroner Vorgang. Das Laden kann Zeit benötigen. Währenddessen kann die Erkennung neuer/verlorener Targets länger dauern, die Verfolgung bleibt unbeeinträchtigt. Ergebnisse werden via Callback im durch CallbackScheduler bestimmten Thread gemeldet. Verfolgungsthread und andere Operationen (außer Laden/Entladen) werden nicht blockiert.
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)
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, die Verfolgung bleibt unbeeinträchtigt. Ergebnisse werden via Callback im durch CallbackScheduler bestimmten Thread gemeldet. Verfolgungsthread und andere Operationen (außer Laden/Entladen) werden nicht blockiert.
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)
Parameter
Rückgabewert
targets
Gibt aktuell geladene Targets im Tracker zurück. Bei asynchronem Laden/Entladen spiegelt der Rückgabewert vor Abschluss diese Änderungen nicht wider.
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()
Rückgabewert
setSimultaneousNum
Setzt die maximale Anzahl gleichzeitig verfolgbarer Targets. Standardwert ist 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)
Parameter
| Name |
Typ |
Beschreibung |
| num |
Int32 |
|
Rückgabewert
simultaneousNum
Ruft die maximale Anzahl gleichzeitig verfolgbarer Targets ab. Standardwert ist 1.
int easyar_ObjectTracker_simultaneousNum(const easyar_ObjectTracker * This)
public int simultaneousNum()
fun simultaneousNum(): Int
public func simultaneousNum() -> Int32
public virtual int simultaneousNum()
Rückgabewert
getSyncResult
Ruft synchrone Ergebnisse ab. Gibt null zurück, wenn ObjectTracker pausiert oder der asynchrone Modus via setResultAsyncMode nicht auf false gesetzt wurde.
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)
Parameter
Rückgabewert