Página principal

Prácticas OpenCV

Puntuación total: 50 puntos (sobre 100)

Ejercicio 1: Introducción a Python, OpenCV y Matplotlib

Puntuación: 5 puntos

Debes escribir un programa Python que use las librerías OpenCV, Matplotlib y Numpy para mostrar una gráfica con el histograma de niveles de gris de una imagen.

Ejercicio 2: Filtros

Puntuación: 15 puntos

a) Escribe un programa basado en el que se proporciona en la sesión 2 de prácticas que permita mostrar alguno de los filtros vistos en teoría

b) Usando Matplotlib realiza un estudio similar al de la transparencia 27 para probar el efecto de la Laplaciana en una imagen en tonos de gris, mostrando el perfil 1D de la imagen original y de la imagen filtrada

c) Escribe un programa que tome dos imágenes (pasamos su nombre de fichero como parámetro) y construya una imagen híbrida (transparencia 35) que muestre en una ventana y la guarde con el nombre que le pasamos como parámetro

Entrega: un documento con el código de los programas y ejemplos de su funcionamiento

Ejercicio 3: Detector de Harris

Puntuación: 10 puntos

Escribe un programa en OpenCV que permita probar el detector de Harris con distintos parámetros y distintas escalas. La salida debe ser una imagen en la que los puntos detectados aparezcan marcados con una X y aparezcan dibujados distintos círculos que representan el tamaño de las distintas ventanas usadas para el cálculo del descriptor. Realiza pruebas con distintas imágenes de ejemplo y distintos valores para los parámetros. Explica cómo afectan los parámetros a los resultados.

Entrega: un documento con el código del programa y ejemplos de su funcionamiento

Ejercicio 4: Búsqueda de modelos 2D

Puntuación: 20 puntos

Esta es una práctica bastante más abierta que las anteriores. Queremos estudiar el problema del reconocimiento de objetos 2D mediante una búsqueda exahustiva de transformaciones afines. Como ejemplo muy sencillo, tenéis en este enlace tres imágenes en las que aparecen alcayatas (figuras en forma de “L”) junto con otros tipos de tornillos. Escribe un programa en OpenCV que busque estos objetos en las imágenes y devuelva en forma de fichero de texto por la salida estándar las coordenadas y el tamaño en píxeles del lado largo de la “L” de las alcayatas que se han encontrado.

Como material, proporcionamos un ejemplo de una aplicación que calcula el filtro de Canny sobre una imagen.

Utiliza las técnicas que hemos visto en la asignatura: suavizado, Canny, detección de esquinas (Harris), transformaciones afínes, composición de imágenes, etc. Dejamos el algoritmo abierto para que investigues el problema.

Entrega: un documento con la explicación de la solución desarrollada el resultado de su funcionamiento y el código del programa.