Cinvestav
Departamento de Computación

Curso: Visión

Prof. Dr. Luis Gerardo de la Fraga
Cuatrimestre Mayo-Agosto 2020

Este es el contenido del curso.

Apuntes del Curso:

  1. Proyección de un círculo según una homografía
  2. Ajuste no lineal de elipses
  3. Ajuste lineal de elipses
  4. El método de Newton para optimización no lineal y la gráfica de una elipse
  5. Cálculo de la homografía y el programa para visualizar el marcador con un objeto virtual. La descomposición QR, ortogonalización de una matriz de tamaño 3x3 y cómo poner la matriz de la cámara en OpenGL.
  6. Creación del objeto virtual.
  7. El sistema de realidad aumentada. Diseño de un objeto virtual.
  8. El programa para reconocer un marcador.
  9. OpenGL y Qt. Proyección ortogonal.
  10. El marcador que se usará en los trabajo 8 y 9. El trabajo 9 será el sistema de realidad aumentada.
  11. Detección de triángulos
  12. Simulación del adelgazamiento y el mapa de distancias con el chamfer 3-4
  13. Momentos y mapa de distancias
  14. El programa para usar la cámara PS3. Checar el Makefile (o hacer una copia) y hacer: qmake video.pro; make
  15. Operaciones morfológicas
  16. Extracción del objeto
  17. Primeros programas en python y C que usan OpenCV.
  18. Apuntes de la clase.
  19. Procesamiento de imágenes.
  20. Cálculo de la cubierta convexa de un conjunto de puntos.
  21. Ordenamiento circular de un conjunto de puntos.
  22. El problema de la correspondencia de puntos entre la imagen y el modelo.
  23. Apuntes de la clase. El método de Zhang para autocalibrar una cámara.
  24. Apuntes de la clase. Deducción de una matriz de rotación usando sus propiedades de ortogonalidad.
  25. Apuntes de la clase. Transformaciones aplicadas al sistema de coordenadas.
  26. Apuntes de la clase. Más sobre composición de transformaciones
  27. Apuntes sobre OpenSCAD.
  28. El modelo de la cámara oscura.
  29. Transformaciones geométricas.

Trabajos del Curso:

Trabajo 9 Sistema de realidad aumentada
Fecha de entrega: 13.08.2020

  • Checar el apunte de la clase del día 14 de julio
  • Trabajo 8 Detección del marcador
    Fecha de entrega: 23.07.2020

  • Checar el apunte de la clase del día 14 de julio y los archivos para el marcador.
  • El programa para reconocer un marcador.
  • Trabajo 7 Clasificación de formas en marcos de video
    Fecha de entrega: 16.07.2020

  • Checar el apunte de la clase del día 9 de julio
  • Trabajo 6 Procesamiento de imágenes capturadas con la cámara
    Fecha de entrega: 9.07.2020

  • Checar el apunte de la clase del día 2 de julio
  • Trabajo 5: Procesamiento de imágenes con OpenCV
    Fecha de entrega: 25.06.2020

  • Checar el apunte de la clase del día 18 de junio
  • Trabajo 4: Autocalibración de una cámara
    Fecha de entrega: 09.06.2020

    1. Realizar una prueba de este método con una imagen de salida de OpenScad. Checar el apunte de la clase del 04.06.2020.

    Trabajo 3: Modelo de la cámara obscura
    Fecha de entrega: 02.06.2020

    1. Realizar un modelo 3D muy sencillo, tal vez uno que use solo tres cubos, como el visto en clase
    2. Generar una vista con OpenSCAD
    3. Programar en python el modelo de la cámara obscura l p = KR[I|-c] P
    4. Los puntos P son la lista de puntos 3D del mismo modelo
    5. Ambas vistas deben coincidir, tal vez solo habrá un cambio en la escala

    Trabajo 2: Composición de transformaciones usando OpenSCAD
    Fecha de entrega: 26.05.2020

    1. Realizar un molino de viento como el visto en clase
    2. Se debe generar un gif animado como se vió en clase

    Trabajo 1: Fecha de entrega 14.05.2020
    Implementar el cálculo de la homografía según el apunte de la clase anterior

    Para probar el código se puede realizar lo siguiente. Para esta imagen:

    La homografía entre los puntos p1 y p2:
    p2 = H1 p1,
    es igual a :
    [ 1, 0, 5 ]
    [ 0, 1, 0 ] = H1,
    [ 0, 0, 1 ]
    esto es, es una translación.

    La homografía entre los puntos p3 y p1: p2 = H2 p1,
    es igual a :
    [ 0.7071, -0.7071, 0.0 ]
    [ 0.7071, 0.7071, 0.0 ] = H2,
    [ 0.0, 0.0, 1.0 ]
    que representa una rotación. Para realizar la prueba más fácilmente, estos son los conjuntos de puntos p1, p2 y p3:
    p1 = { (1,1), (3,1), (3,3), (1,3) },
    p2 = { (1,6), (3,6), (3,8), (1,8) },
    p3 = { (2.0, 0.58578644), (3.41421356,2.0), (2.0, 3.41421356), (0.58578644, 2.0) }

    Última actualización: 13 de agosto, 2020
    Comentarios: fraga at cs cinvestav mx