2012-10-05 22 views
7

¿Existe actualmente una biblioteca en JavaScript para convertir una transmisión de video en Canvas en una malla 3D?¿Cuáles son los puntos de partida adecuados para convertir video en lienzo en una malla 3D

Una situación de ejemplo es apuntar una cámara a una taza y capturar las imágenes sin procesar, comparando datos previos con datos nuevos para generar un contorno de los objetos a la vista, convirtiéndolo idealmente en el conjunto más simple de polígonos y visualización el polígono/modelo calculado en un segundo elemento de lienzo.

He visto un excelente trabajo de mrdoob en JavaScript 3D que va de archivos de objeto a la representación en lienzo, pero estoy tratando de capturar datos sin procesar y tratar de generar una malla. La intención es enviar los puntos de malla entre 2 usuarios por sockets para cualquier objeto actualmente dentro de la vista de la cámara que sea capturado.

Cualquier ayuda apreciada.

+1

OBJ-archivos ya tienen información vértice en 3D. Eso es bastante simple de mostrar en un lienzo. ¿Desea generar una malla 3D a partir de un video 2D? ¿Cómo vas a obtener información/información de profundidad del otro lado del objeto? - Obtener los contornos de un objeto a través del procesamiento de imágenes es posible, aunque solo obtiene información 2D. – Smamatti

+0

Hay una aplicación interesante llamada video trace que requiere que el usuario ingrese las líneas que delinean el objeto pero no en tiempo real aunque es muy inteligente en los bordes de interpolación, de manera similar hay aplicaciones para kinect que realizan detección de bordes para seguimiento de gestos, entonces pienso una aplicación que puede comparar marcos para discernir límites y geometrías a lo largo de muchos marcos puede ser una dirección que podría llevarnos a coordenadas en 3D si pudieran detectarse ciertas líneas de fuga o si el movimiento de un conjunto de puntos relacionados difería de otro. Mucho más para aprender de cualquier manera – MyStream

Respuesta

3

es bastante un problema complejo. La mayoría de los algoritmos requieren 2 imágenes (sistemas de visión estéreo) para reconocer y procesar información 2D en objetos 3D. Hacer esto con una cámara web y compatible con Javascript es todo un desafío :)

Básicamente, creo que deberás combinar algunas técnicas de visión artificial (detección de bordes, filtrado, asignación de 3d a 2d, ...).

Aquí hay alguna información que podría ser útil

Una biblioteca del ordenador visión de Javascript - https://github.com/alex-m/seevee.js/wiki (puertos algunas de las funciones de OpenCV conocidos) - puede ser útil para obtener de cámaras de imágenes, procesamiento 3d, etc

biblioteca 3D de peso ligero - https://github.com/mrdoob/three.js/

Ver este enfoque http://www.eng.cam.ac.uk/news/stories/2009/3D_models/

6

No es una biblioteca, pero aquí hay una demostración de la técnica que estás buscando.

Webcam Mesh

+0

Hola @eighteyes, la malla de la cámara web para romper las imágenes en un concepto de renderizado 3D se ve genial. Parece que no puedo ejecutarlo. Chrome está muriendo en la versión 22 para acceder y ejecutar el ejemplo. Sin embargo, es solo una parte de la captura y no estoy seguro de qué malla está creando o qué tan bien mapeada es para un objeto 3d que solo usa brillo de píxel. También estoy buscando una solución completa, por lo que aún no puedo otorgar la recompensa. Sin embargo, ¡animo a la gente a que lo revise! Parece muy inteligente, ¡gracias! – MyStream

+0

Si bien la recompensa fue otorgada aquí, la pregunta permaneció completamente sin respuesta, por lo que es una pena que no sea posible hacer coincidir las respuestas con el rebote ya que la persona que hace la pregunta y la respuesta anterior no coincide con los requisitos, pero todavía pienso la gente debería verificarlo por interés. – MyStream

Cuestiones relacionadas