Table of Contents

Class ImageTracker

名前空間
easyar

ImageTrackerは平面カードの検出と追跡を実装します。 ImageTrackerは(1 + SimultaneousNum)個のカメラバッファを占有します。カメラのsetBufferCapacityを使用して、すべてのコンポーネントが占有するカメラバッファの数以上に設定する必要があります。 作成後、start/stopを呼び出して実行を開始および停止できます。start/stopは非常に軽量な呼び出しです。 コンポーネントが不要になったら、closeを呼び出して閉じることができます。close後は使用を続けてはいけません。 ImageTrackerはfeedbackFrameSinkを介してFeedbackFrameを入力します。FeedbackFrameSourceをfeedbackFrameSinkに接続して使用する必要があります。 TargetがImageTrackerによって追跡される前に、loadTarget/unloadTargetを使用してロードする必要があります。ロード/アンロードの結果は、インターフェースのコールバックを渡すことで取得できます。

ImageTracker

メソッド

isAvailable

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

戻り値

説明
Boolean

feedbackFrameSink

FeedbackFrame入力ポート。FeedbackFrameのInputFrameメンバーは、画像、タイムスタンプ、およびカメラパラメータを持っている必要があります。カメラはピンホールと魚眼カメラをサポートします。

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

戻り値

説明
FeedbackFrameSink

bufferRequirement

現在のコンポーネントが占有するカメラバッファの数。

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

戻り値

説明
Int32

outputFrameSource

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

戻り値

説明
OutputFrameSource

create

作成。デフォルトの追跡モードは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()

戻り値

説明
ImageTracker

createWithMode

特定の追跡モードで作成。低スペックのスマートフォンでは、ImageTrackerMode.PreferPerformanceを使用してパフォーマンスを向上させることができますが、追跡効果が若干低下します。

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)

パラメーター

名前 説明
trackMode ImageTrackerMode

戻り値

説明
ImageTracker

createWithConfig

特定の構成で作成。

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)

パラメーター

名前 説明
config ImageTrackerConfig

戻り値

説明
ImageTracker

setResultPostProcessing

結果の後処理を設定します。 enablePersistentTargetInstanceはデフォルトでfalseです。有効にすると、InputFrameデータに空間情報が含まれている場合、ImageTrackerResultのtargetInstancesには、認識されたすべてのインスタンス(現在追跡されていないものも含む)が含まれます。 enableMotionFusionはデフォルトでfalseです。有効にすると、InputFrameデータに時間情報と空間情報が含まれている場合、ImageTrackerResultのtargetInstancesのposeは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)

パラメーター

名前 説明
enablePersistentTargetInstance Boolean
enableMotionFusion Boolean

戻り値

説明
Void

setResultAsyncMode

結果の非同期モードを設定します。結果がoutputFrameSourceを介して出力される場合はtrueに設定し、結果がgetSyncResultで取得される場合はfalseに設定する必要があります。デフォルトのenableAsyncはtrueです。同期モードは、入力フレームに空間情報が含まれ、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)

パラメーター

名前 説明
enableAsync Boolean

戻り値

説明
Boolean

start

追跡アルゴリズムを開始します。

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

戻り値

説明
Boolean

stop

追跡アルゴリズムを一時停止します。startを呼び出して追跡を再開します。

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

戻り値

説明
Void

close

閉じます。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()

戻り値

説明
Void

loadTarget

Targetをトラッカーにロードします。Targetは、トラッカーに正常にロードされた後でのみ認識および追跡できます。 このメソッドは非同期メソッドです。ロードプロセスは完了するまでに時間がかかる場合があり、その間、新しいターゲットや失われたターゲットの検出に通常より時間がかかる可能性がありますが、検出後の追跡には影響しません。ロードの結果を知りたい場合は、コールバックデータを処理する必要があります。コールバックは、CallbackSchedulerで指定されたスレッドで呼び出されます。追跡スレッドや他のロード/アンロード以外の操作はブロックされません。

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)

パラメーター

名前 説明
target Target
callbackScheduler CallbackScheduler
callback Action<,>

戻り値

説明
Void

unloadTarget

トラッカーからTargetをアンロードします。 このメソッドは非同期メソッドです。アンロードプロセスは完了するまでに時間がかかる場合があり、その間、新しいターゲットや失われたターゲットの検出に通常より時間がかかる可能性がありますが、検出後の追跡には影響しません。アンロードの結果を知りたい場合は、コールバックデータを処理する必要があります。コールバックは、CallbackSchedulerで指定されたスレッドで呼び出されます。追跡スレッドや他のロード/アンロード以外の操作はブロックされません。

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)

パラメーター

名前 説明
target Target
callbackScheduler CallbackScheduler
callback Action<,>

戻り値

説明
Void

targets

現在トラッカーにロードされているターゲットを返します。非同期のロード/アンロードが実行中の場合、ロード/アンロードが完了する前の戻り値はこれらのロード/アンロードの結果を反映しません。

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

戻り値

説明
List<>

setSimultaneousNum

トラッカーが追跡できる最大ターゲット数を設定します。デフォルト値は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)

パラメーター

名前 説明
num Int32

戻り値

説明
Boolean

simultaneousNum

トラッカーが追跡できる最大ターゲット数を取得します。デフォルト値は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()

戻り値

説明
Int32

getSyncResult

同期出力結果を取得します。ImageTrackerが一時停止されている場合、またはsetResultAsyncModeで結果非同期モードをfalseに設定していない場合、戻り値は空です。

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)

パラメーター

名前 説明
motionInputData MotionInputData

戻り値

説明
Optional<ImageTrackerResult>