Class ImageTracker
ImageTracker implementa a detecção e rastreamento de cartões planos.
ImageTracker ocupa (1 + SimultaneousNum) buffers de camera. Deve-se usar setBufferCapacity da camera para definir um número não inferior aos buffers de camera ocupados por todos os componentes.
Após a criação, pode-se chamar start/stop para iniciar e parar a execução, start/stop são chamadas muito leves.
Quando o componente não for mais necessário, pode-se chamar close para fechá-lo. Não deve ser usado após close.
ImageTracker recebe entrada através de feedbackFrameSink para FeedbackFrame, FeedbackFrameSource deve ser conectado a feedbackFrameSink para uso.
Antes que Target possa ser rastreado pelo ImageTracker, você precisa carregá-lo através de loadTarget/unloadTarget. Pode-se obter os resultados de load/unload através de callbacks de interface.
ImageTracker
Métodos
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()
Retorna
feedbackFrameSink
FeedbackFrame porta de entrada. O membro InputFrame em FeedbackFrame deve ter imagem, timestamp e parâmetros de camera, camera suporta câmera pinhole e 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()
Retorna
bufferRequirement
Número de buffers de camera ocupados pelo componente atual.
int easyar_ImageTracker_bufferRequirement(easyar_ImageTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Retorna
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()
Retorna
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()
Retorna
createWithMode
Cria com um modo de rastreamento específico. Em telefones de baixo desempenho, pode-se usar ImageTrackerMode.PreferPerformance para obter melhor desempenho, mas com alguma perda na qualidade de rastreamento.
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)
Parâmetros
Retorna
createWithConfig
Cria com configuração específica.
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)
Parâmetros
Retorna
setResultPostProcessing
Configura pós-processamento de resultados.
enablePersistentTargetInstance é false por padrão, quando ativado, se os dados de InputFrame contiverem informações espaciais, targetInstances em ImageTrackerResult incluirá todas as instâncias detectadas (incluindo as não rastreadas atualmente).
enableMotionFusion é false por padrão, quando ativado, se os dados de InputFrame contiverem informações de tempo e espaço, a pose de targetInstances em ImageTrackerResult será processada usando 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)
Parâmetros
| Nome |
Tipo |
Descrição |
| enablePersistentTargetInstance |
Boolean |
|
| enableMotionFusion |
Boolean |
|
Retorna
setResultAsyncMode
Configura modo assíncrono de resultados. Se os resultados forem enviados através de outputFrameSource, deve ser definido como true; se forem obtidos através de getSyncResult, deve ser definido como false. enableAsync é true por padrão. O modo síncrono só é efetivo quando o quadro de entrada contém informações espaciais e uma licença XR é usada.
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)
Parâmetros
| Nome |
Tipo |
Descrição |
| enableAsync |
Boolean |
|
Retorna
start
Inicia o algoritmo de rastreamento.
bool easyar_ImageTracker_start(easyar_ImageTracker * This)
public func start() -> Bool
public virtual bool start()
Retorna
stop
Pausa o algoritmo de rastreamento. Chame start para reiniciar o rastreamento.
void easyar_ImageTracker_stop(easyar_ImageTracker * This)
public func stop() -> Void
public virtual void stop()
Retorna
close
Fecha. Não deve ser usado após close.
void easyar_ImageTracker_close(easyar_ImageTracker * This)
public func close() -> Void
public virtual void close()
Retorna
loadTarget
Carrega um Target no tracker. Target só pode ser reconhecido e rastreado após ser carregado com sucesso no tracker.
Este método é assíncrono. O processo de carregamento pode levar algum tempo, durante o qual a detecção de novos e perdidos targets pode demorar mais do que o normal, mas o rastreamento após detecção não é afetado. Se desejar saber o resultado do carregamento, precisa lidar com dados de callback. O callback será chamado no thread especificado por CallbackScheduler. O thread de rastreamento e outras operações, exceto outros carregamentos/descarregamentos, não serão bloqueados.
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)
Parâmetros
Retorna
unloadTarget
Descarrega Target do tracker.
Este método é assíncrono. O processo de descarregamento pode levar algum tempo, durante o qual a detecção de novos e perdidos targets pode demorar mais do que o normal, mas o rastreamento após detecção não é afetado. Se desejar saber o resultado do descarregamento, precisa lidar com dados de callback. O callback será chamado no thread especificado por CallbackScheduler. O thread de rastreamento e outras operações, exceto outros carregamentos/descarregamentos, não serão bloqueados.
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)
Parâmetros
Retorna
targets
Retorna os targets atualmente carregados no tracker. Se carregamentos/descarregamentos assíncronos estiverem em execução, o valor retornado antes da conclusão não refletirá os resultados desses carregamentos/descarregamentos.
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()
Retorna
setSimultaneousNum
Define o número máximo de targets que podem ser rastreados pelo tracker. O valor padrão é 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)
Parâmetros
| Nome |
Tipo |
Descrição |
| num |
Int32 |
|
Retorna
simultaneousNum
Obtém o número máximo de targets que podem ser rastreados pelo tracker. O valor padrão é 1.
int easyar_ImageTracker_simultaneousNum(const easyar_ImageTracker * This)
public int simultaneousNum()
fun simultaneousNum(): Int
public func simultaneousNum() -> Int32
public virtual int simultaneousNum()
Retorna
getSyncResult
Obtém resultados de saída síncronos. Se o ImageTracker estiver pausado, ou se o modo assíncrono de resultados não for definido como false via setResultAsyncMode, o valor retornado será nulo.
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)
Parâmetros
Retorna