Objetos principales en OpenNI
Objetos principales en OpenNI
Por último, vamos a presentar cualitativamente los objetos más importantes que se definen en la estructura de clases de OpenNI. El objeto más importante de OpenNI es el contexto (xn::Context), ya que almacena el estado de las aplicaciones y cadenas de producción en uso en cada momento. Puede haber más de un contexto por aplicación, pero no comparten estructuras ni datos entre sí.
OpenNI también define objetos de metadatos, que abarcan una serie de propiedades características de un conjunto de datos generados. Cada generador de datos se asocia con un objeto de metadatos concreto, de forma que cada vez que se leen los datos producidos por el generador, se puede consultar el objeto de metadatos para conocer más detalles sobre los mismos (p.ej: resolución de una imagen).
La mayor parte de los objetos que se utilizan en OpenNI son nodos de producción generadores de datos de diferente índole. A continuación, se presentan los diferentes tipos de generadores y sus funcionalidades y capacidades concretas (para ver en mayor detalle estas estructuras, se remite al alumno a la documentación facilitada en la web de OpenNI).
- Map Generator: interfaz que cualquier generador de datos de tipo mapa (imagen RGB, imagen de profundidad, etc.) debe implementar
- Output Mode: propiedad que configura la forma en que se genera el mapa.
- Cropping (ver capacidades)
- Alternative Viewpoint (ver capacidades)
- Frame Sync (ver capacidades)
- Depth Generator: genera un mapa de profundidad
- Get Depth Map: permite acceder a los datos del mapa de profundidad.
- Get Device Max Depth: indica la distancia máxima que el dispositivo capta
- Field of View: propiedad para configurar el campo de visión (ángulos horizontal y vertical) del sensor
- User Position (ver capacidades)
- Image Generator: map generator que genera una imagen en color.
- Get Image Map: accede a los datos de la imagen.
- Pixel Format: propiedad que configura el formato de los píxeles en la imagen.
- IR Generator: map generator que genera una imagen de intensidad de infrarrojos.
- Get IR Map: accede a los datos de la imagen.
- Scene Analyzer: map generator que genera un mapa de etiquetas para identificar elementos de interés en la escena capturada.
- Get Label Map: accede a los datos del mapa de etiquetas, de forma que cada píxel tiene asignado una etiqueta (objeto 1, objeto 2, fondo, etc.).
- Get Floor: indica las coordenadas correspondientes al suelo en la escena capturada
- Audio Generator: objeto que genera datos de audio.
- Get Audio Buffer: accede a los datos de audio en el buffer.
- Wave Output Modes: propiedad que configura el formato de la salida de audio: velocidad de muestreo, número de canales, bits por muestra, etc.
- Gesture Generator: objeto que posibilita hacer el seguimiento de ggestos específicos con el cuerpo o las manos.
- Add/Remove Gesture: activa/desactiva los gestos que el generador intentará encontrar en la escena.
- Get Active Gestures: indica los gestos activos en cada momento.
- Register/Unregister Gesture Callbacks
- Register/Unregister Gesture Change
- Hand Point Generator: realiza el seguimiento de las coordenadas de la mano.
- Start/Stop Tracking: indica si se ha de hacer o no el seguimiento a la posición de una mano en concreto.
- Register/Unregister Hand Callbacks: registra las funciones a llamar cuando se detecta una nueva mano, cuando se actualiza la posición de una mano ya conocida, y cuando se pierde el seguimiento de una mano.
- User Generator: genera información relativa a los objetos (personas) detectados en la escena que se procesa.
- Get Number of Users: indica el número de usuarios detectado.
- Get Users: identifica los usuarios detectados.
- Get User CoM: calcula el centro de masas del usuario especificado.
- Get User Pixels: obtiene un mapa de la escena donde se identifican los píxeles que corresponden a cada usuario
- Register/Unregister User Callbacks: registra las funciones que se llaman al detectarse un nuevo usuario y en el caso de se pierda un usuario ya detectado.