Table of Contents

Class ImageTracker

Ruang Nama
easyar

ImageTracker mendeteksi dan melacak kartu planar. ImageTracker memakai buffer kamera (1 + SimultaneousNum). Gunakan setBufferCapacity kamera untuk mengatur tidak kurang dari jumlah buffer kamera yang dipakai semua komponen. Setelah dibuat, panggil start/stop untuk mulai/berhenti beroperasi. Panggilan start/stop sangat ringan. Saat tidak diperlukan lagi, panggil close untuk menutupnya. Jangan digunakan lagi setelah close. ImageTracker menerima input melalui feedbackFrameSink FeedbackFrame. Hubungkan FeedbackFrameSource ke feedbackFrameSink untuk digunakan. Sebelum Target dapat dilacak ImageTracker, muat dulu via loadTarget/unloadTarget. Hasil load/unload bisa didapat lewat callback antarmuka.

ImageTracker

Metode

isAvailable

Mengembalikan 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()

Mengembalikan

Tipe Deskripsi
Boolean

feedbackFrameSink

Port input FeedbackFrame. Anggota InputFrame di FeedbackFrame wajib punya gambar, timestamp, dan parameter kamera. Kamera mendukung pinhole dan fisheye.

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()

Mengembalikan

Tipe Deskripsi
FeedbackFrameSink

bufferRequirement

Jumlah buffer kamera yang dipakai komponen saat ini.

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()

Mengembalikan

Tipe Deskripsi
Int32

outputFrameSource

Port output OutputFrame.

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()

Mengembalikan

Tipe Deskripsi
OutputFrameSource

create

Dibuat. Mode pelacakan default adalah 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()

Mengembalikan

Tipe Deskripsi
ImageTracker

createWithMode

Dibuat dengan mode pelacakan spesifik. Di ponsel low-end, gunakan ImageTrackerMode.PreferPerformance untuk kinerja lebih baik walau pelacakan sedikit berkurang.

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

Nama Tipe Deskripsi
trackMode ImageTrackerMode

Mengembalikan

Tipe Deskripsi
ImageTracker

createWithConfig

Dibuat dengan konfigurasi spesifik.

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

Nama Tipe Deskripsi
config ImageTrackerConfig

Mengembalikan

Tipe Deskripsi
ImageTracker

setResultPostProcessing

Atur pemrosesan hasil. enablePersistentTargetInstance default false. Saat diaktifkan, jika InputFrame mengandung info spasial, targetInstances di ImageTrackerResult akan mencakup semua instance terdeteksi (termasuk yang tidak sedang dilacak). enableMotionFusion default false. Saat diaktifkan, jika InputFrame mengandung info waktu dan spasial, pose targetInstances di ImageTrackerResult akan diproses pakai 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)

Parameter

Nama Tipe Deskripsi
enablePersistentTargetInstance Boolean
enableMotionFusion Boolean

Mengembalikan

Tipe Deskripsi
Void

setResultAsyncMode

Atur mode hasil asinkron. Jika hasil dikeluarkan via outputFrameSource, setel ke true. Jika hasil didapat via getSyncResult, setel ke false. Default enableAsync true. Mode sinkron hanya berlaku jika frame input mengandung info spasial dan menggunakan Lisensi 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)

Parameter

Nama Tipe Deskripsi
enableAsync Boolean

Mengembalikan

Tipe Deskripsi
Boolean

start

Mulai algoritma pelacakan.

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()

Mengembalikan

Tipe Deskripsi
Boolean

stop

Jeda algoritma pelacakan. Panggil start untuk melanjutkan.

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()

Mengembalikan

Tipe Deskripsi
Void

close

Tutup. Jangan digunakan lagi setelah close.

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()

Mengembalikan

Tipe Deskripsi
Void

loadTarget

Muat Target ke tracker. Target hanya bisa dikenali dan dilacak setelah berhasil dimuat. Metode ini asinkron. Pemuatan mungkin butuh waktu. Selama itu, deteksi target baru/hilang mungkin lebih lama, tapi pelacakan setelah terdeteksi tidak terpengaruh. Untuk tahu hasil pemuatan, proses data callback. Callback akan dipanggil di thread yang ditentukan CallbackScheduler. Thread pelacakan dan operasi lain (kecuali load/unload) tidak terblokir.

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

Nama Tipe Deskripsi
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Mengembalikan

Tipe Deskripsi
Void

unloadTarget

Bongkar Target dari tracker. Metode ini asinkron. Pembongkaran mungkin butuh waktu. Selama itu, deteksi target baru/hilang mungkin lebih lama, tapi pelacakan setelah terdeteksi tidak terpengaruh. Untuk tahu hasil pembongkaran, proses data callback. Callback akan dipanggil di thread yang ditentukan CallbackScheduler. Thread pelacakan dan operasi lain (kecuali load/unload) tidak terblokir.

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

Nama Tipe Deskripsi
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Mengembalikan

Tipe Deskripsi
Void

targets

Kembalikan target yang saat ini sudah dimuat ke tracker. Jika load/unload asinkron sedang berjalan, nilai kembalian sebelum selesai tidak akan mencerminkan hasilnya.

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()

Mengembalikan

Tipe Deskripsi
List<>

setSimultaneousNum

Atur jumlah target maksimal yang bisa dilacak tracker. Default 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

Nama Tipe Deskripsi
num Int32

Mengembalikan

Tipe Deskripsi
Boolean

simultaneousNum

Dapatkan jumlah target maksimal yang bisa dilacak tracker. Default 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()

Mengembalikan

Tipe Deskripsi
Int32

getSyncResult

Dapatkan hasil output sinkron. Jika ImageTracker dijeda, atau mode hasil asinkron belum disetel false via setResultAsyncMode, kembalian akan kosong.

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

Nama Tipe Deskripsi
motionInputData MotionInputData

Mengembalikan

Tipe Deskripsi
Optional<ImageTrackerResult>