es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo dejar de rastrear una imagen en ARCore

Cuando uso la función de imagen aumentada, el programa se queda atascado en el estado de seguimiento.

“`
case TRACKING:

      fitToScanView.setVisibility(View.GONE);
      if (!augmentedImageMap.containsKey(augmentedImage)) {
        SnackbarHelper.getInstance().showMessage(this, "showing");
        node = new AugmentedImageNode(this);
        this.image = augmentedImage;

        node.setImage(this.image);
        augmentedImageMap.put(this.image, node);
        arFragment.getArSceneView().getScene().addChild(node);
      }
      break; 


He intentado eliminar el nodo con esta función, pero no funcionó

public void clearDetect(View view) {
Collection anchors = arFragment.getArSceneView().getSession().getAllAnchors();

for(Anchor anchor : anchors) {
  anchor.detach();
  Log.d("leolog2",anchor.getTrackingState().toString());
}

fitToScanView.setVisibility(View.VISIBLE);

Iterator<>> iter =
        augmentedImageMap.entrySet().iterator();
while (iter.hasNext()) {
  Map.Entry entry = iter.next();
  AugmentedImage face = entry.getKey();
  AugmentedImageNode faceNode = entry.getValue();
  faceNode.setParent(null);
  iter.remove();
  augmentedImageMap.remove(this.image);

}

}
¿Alguien sabe cómo salir del estado de seguimiento y detectar otra imagen?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no tengo acceso a la configuración específica de su sistema o base de código. Sin embargo, aquí hay algunas sugerencias que pueden ayudarlo a resolver el problema:

    1. Asegúrese de que la cámara y la imagen estén bien iluminadas y visibles para la cámara.
    2. Verifique si hay algún error o mensaje de advertencia en la consola que pueda indicar la causa del problema.
    3. En la función clearDetect, intente eliminar la instrucción augmentedImageMap.remove(this.image);, ya que parece redundante ya que el objeto entry ya se está eliminando en la línea anterior.
    4. Intente agregar un estado RESET a la declaración switch-case, donde el seguimiento de imágenes aumentadas se restablece para detectar nuevas imágenes.
    case RESET:
        augmentedImageMap.clear();
        break;
    
    1. Intente analizar si el problema está relacionado con la detección de imágenes aumentadas o la representación de nodos. Puede hacer esto eliminando la línea node.setImage(this.image); y ver si la aplicación sigue atascada en el estado de seguimiento o pasa al siguiente estado.

    Espero que estas sugerencias le ayuden a resolver el problema.

Comments are closed.