Class ImageTracker
ImageTracker обеспечивает обнаружение и отслеживание плоских карт.
ImageTracker занимает (1 + SimultaneousNum) буферов камеры. Используйте setBufferCapacity камеры для установки значения не меньше, чем общее количество буферов камеры, занимаемых всеми компонентами.
После создания можно вызывать start/stop для запуска и остановки работы; start/stop - это очень легковесные вызовы.
Когда компонент больше не нужен, вызовите close для его закрытия. После close не следует продолжать использование.
ImageTracker получает FeedbackFrame через feedbackFrameSink. FeedbackFrameSource должен быть подключен к feedbackFrameSink для использования.
Прежде чем Target сможет быть отслежен ImageTracker, его необходимо загрузить через loadTarget/unloadTarget. Результат загрузки/выгрузки можно получить через callback, передаваемый в интерфейс.
ImageTracker
Методы
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()
Возвращаемое значение
feedbackFrameSink
Входной порт для FeedbackFrame. Член InputFrame в FeedbackFrame должен обязательно содержать изображение, временную метку и параметры камеры. Поддерживаются пинхольные и фишай-камеры.
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()
Возвращаемое значение
bufferRequirement
Количество буферов камеры, занимаемых текущим компонентом.
int easyar_ImageTracker_bufferRequirement(easyar_ImageTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Возвращаемое значение
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()
Возвращаемое значение
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()
Возвращаемое значение
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)
Параметры
Возвращаемое значение
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)
Параметры
Возвращаемое значение
setResultPostProcessing
Устанавливает постобработку результатов.
enablePersistentTargetInstance по умолчанию false. При включении, если данные InputFrame содержат пространственную информацию, targetInstances в ImageTrackerResult будут включать все обнаруженные экземпляры (включая те, что в данный момент не отслеживаются).
enableMotionFusion по умолчанию false. При включении, если данные InputFrame содержат временную и пространственную информацию, pose для targetInstances в ImageTrackerResult будет обрабатываться с использованием 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 |
|
Возвращаемое значение
setResultAsyncMode
Устанавливает асинхронный режим вывода результатов. Если результаты выводятся через outputFrameSource, установите true. Если результаты получаются через getSyncResult, установите false. По умолчанию enableAsync = true. Синхронный режим работает только при наличии пространственной информации во входном кадре и при использовании XR License.
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 |
|
Возвращаемое значение
start
Запускает алгоритм отслеживания.
bool easyar_ImageTracker_start(easyar_ImageTracker * This)
public func start() -> Bool
public virtual bool start()
Возвращаемое значение
stop
Приостанавливает алгоритм отслеживания. Вызовите start, чтобы возобновить отслеживание.
void easyar_ImageTracker_stop(easyar_ImageTracker * This)
public func stop() -> Void
public virtual void stop()
Возвращаемое значение
close
Закрывает. После close не следует продолжать использование.
void easyar_ImageTracker_close(easyar_ImageTracker * This)
public func close() -> Void
public virtual void close()
Возвращаемое значение
loadTarget
Асинхронно загружает Target в трекер. Target может быть распознан и отслежен только после успешной загрузки в трекер.
Процесс загрузки может занять некоторое время. В течение этого времени обнаружение новых и потерянных целей может занять больше времени, чем обычно, но отслеживание уже обнаруженных целей не пострадает. Чтобы узнать результат загрузки, обработайте данные callback. Callback будет вызван в потоке, указанном 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)
Параметры
Возвращаемое значение
unloadTarget
Асинхронно выгружает Target из трекера.
Процесс выгрузки может занять некоторое время. В течение этого времени обнаружение новых и потерянных целей может занять больше времени, чем обычно, но отслеживание уже обнаруженных целей не пострадает. Чтобы узнать результат выгрузки, обработайте данные callback. Callback будет вызван в потоке, указанном 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)
Параметры
Возвращаемое значение
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()
Возвращаемое значение
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 |
|
Возвращаемое значение
simultaneousNum
Получает максимальное количество целей, которые трекер может отслеживать одновременно. Значение по умолчанию: 1.
int easyar_ImageTracker_simultaneousNum(const easyar_ImageTracker * This)
public int simultaneousNum()
fun simultaneousNum(): Int
public func simultaneousNum() -> Int32
public virtual int simultaneousNum()
Возвращаемое значение
getSyncResult
Получает синхронный результат вывода. Возвращает null, если 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)
Параметры
Возвращаемое значение