Este fin de semana largo empecé un nuevo proyecto, el diseño y construcción de un scanner 3D económico con el menor hardware posible.
Lo primero que hice fue trabajar en el álgebra y en los primeros algoritmos, si bien me queda bastante álgebra por resolver creo que ya tengo resuelta una de las partes mas complicadas.
En la imagen se ve una cuadricula, el soft detecta esa cuadricula con la que calibra la cámara, calcula las distorsión radial y la distorsión tangencial (apropósito uso una webcam de mala calidad para ver como resuelve la distorsión); luego dibuja los eje XYZ en perspectiva. Por último hago click en la imagen y calcula la posición donde hice click en la cuadricula (X, Y y Z=0).
Lo primero que hice fue trabajar en el álgebra y en los primeros algoritmos, si bien me queda bastante álgebra por resolver creo que ya tengo resuelta una de las partes mas complicadas.
En la imagen se ve una cuadricula, el soft detecta esa cuadricula con la que calibra la cámara, calcula las distorsión radial y la distorsión tangencial (apropósito uso una webcam de mala calidad para ver como resuelve la distorsión); luego dibuja los eje XYZ en perspectiva. Por último hago click en la imagen y calcula la posición donde hice click en la cuadricula (X, Y y Z=0).
La primer hoja de fórmulas muestra como llevar puntos 3D al plano de la imagen, algo así como realidad aumentada (lo que hice con los ejes dibujados), esta parte es la mas sencilla ya que OpenCv lo resuelve automáticamente, pero tuve que analizar como hacerlo manualmente para lograr el proceso inverso, es decir como a partir de puntos del plano de la imagen calcular punto 3D en el mundo real (lo que hace un escaner 3D); esto se ve reflejado en la segunda hoja de fórmulas.