PROCESAMIENTO DE IMAGENES

Tareas

Instrucciones

A partir del Enunciado de la Tarea, Ud. deberá implementar -de manea individual- una solución en Matlab u otro lenguaje de programación. El código diseñado debe ser debidamente comentado y explicado, por favor sea lo más claro posible. La nota depende de 3 items: explicacion 20%, algoritmo 20%, calidad de los resultados 40% y prueba 20%. La prueba se tomará en la clase siguiente después de la entrega de la tarea. Los archivos de la solución (ver especificaciones en el párrafo siguiente) deberán comprimirse en un archivo zip. El nombre del archivo zip deberá ser Tx_Nombre_Apellido.zip donde x es el número de la tarea (por ejemplo para la tarea 2 de Juan Cifuentes el archivo seria T2_Juan_Cifuentes.zip). 

Para usuarios MATLAB: Ud. deberá usar la opción "Publish"(ver tutorial). En el archivo zip Ud. deberá incluir el código Matlab creado por Ud. que solucione el problema y los archivos html creados por la función "Publish".

Para usuarios de otros lenguajes de programación: Ud. deberá incluir el código, así como un mini-informe en que explique lo que se realizó con los resultados obtenidos.

INDICACIONES FINALES: El archivo zip debe subirse al sitio indicado en cada tarea antes de la hora acordada. El sitio se cierra a la hora acordada y no se reciben tareas posteriores. En esta página Ud. encontrará un ejemplo de Tarea, que llamamos la Tarea 0.

Tarea 0

Esto es sólo un ejemplo! La idea es que Ud. se familiarice con el tipo de tarea que debe realizar en este curso según las instrucciones.

[ Enunciado ] 

Esta tarea es sobre Análisis de Imágenes. Suponga que Ud. cuenta con una imagen que contiene granos de arroz tomada sobre un fondo oscuro. Ud. debe escribir un programa en Matlab que segmente cada grano de manera individual. Adicionalmente debe contar la cantidad de granos presentes en la imagen y calcular el área de cada grano (en pixels). Deberá presentar el promedio y la desviacón estándar del área. Para esta tarea use la imagen 'rice.png' disponible en Matlab.

[ Solución ] (entregada sólo para esta tarea)

La solución se encuentra en este archivo m-file. El archivo contiene las secciones y comentarios que explica cada uno de los pasos empleados, además se muestran los resultados intermedios. Por favor use en su solución tantos comentarios como sean necesarios para entender la solución. La página html creada por la opción "Publish" de Matlab se puede ver aquí. El archivo zip se encuentra aquí

Una solución en Python se encuentra disponible aquí (desarrollada por Pierre-Victor Chaumier).  

 


Código de Honor e Integridad Académica

Este curso adscribe el Código de Honor establecido por la Escuela de Ingeniería el que es vinculante. Todo trabajo evaluado en este curso debe ser propio. En caso de que exista colaboración permitida con otros estudiantes, el trabajo deberá referenciar y atribuir correctamente dicha contribución a quien corresponda. Como estudiante es su deber conocer la versión en línea del Código de Honor. Además, los estudiantes de este curso declaran conocer Política de Integridad Académica del Departamento de Ciencia de la Computación.


Tarea 1

Conversor de Reloj Analógico a Digital

Entrega: Martes 30/08/16 - 6:30 pm

[ Enunciado ]

El objetivo de esta tarea es realizar un programa que determine automáticamente la hora de un reloj analógico. En el archivo zip se encuentran 7 fotografías a color de un reloj analógico, que deben ser leídas por un programa y procesadas para determinar automáticamente la hora que aparece en el reloj. El reloj cuenta con tres manecillas: dos manecillas que terminan en flecha (la grande corresponde al horero y la pequeña al minutero) y una manecilla delgada (segundero). 

Se debe realizar un programa que i) en la imagen encuentre el reloj (es necesario segmentarlo del fondo y del marco de madera), ii) encuntre el horero, minutero y segundero, iii) estime los ángulos de cada manecilla; y iv) calcule la hora señalada indicando horas, minutos y segundos. La entrada del programa es la imagen, la salida es la hora calculada.

El programa debe funcionar correctamente para las 7 imágenes contenidas en el archivo zip, no es necesario que funcione para otro tipo de relojes. Este reloj no distingue entre AM y PM.

Tarea 2

Detector de fallas en radiogradias

Entrega: Martes 11/10/16 a las 6:30pm, el control será el jueves 13.

[ Enunciado ]

El objetivo de esta tarea es utilizar la Transformada de Fourier en la detección de fallas en piezas de soldadura. 

En la base de datos GDXray se encuentra el conjunto de imágenes  C0002 con 90 radiografías de llantas de automóvil. Estas imágenes deben ser leídas por un programa y procesadas para detectar automáticamente las fallas presentes. El conjunto de imágenes contiene un archivo ground_truth.txt con las segmentaciones ideales de las fallas realizadas por un experto humano. Ground truth es una tabla que contiene una fila por falla detectada. En esta fila la primera columna corresponde al número de la imagen en la que está presente la falla, las cuatro columnas restantes contienen las coordenadas de los vértices en diagonal del rectángulo que contiene la falla (ver ejemplo en Matlab para desplegar falla en imagen 16). 

Se debe realizar un programa que i) detecte automáticamente las fallas en las 22 imagenes 4, 8, 12, 16, ... 88, ii) construya una imagen binaria que muestre las fallas detectadas; y iii) calcule un bounding box que contenga la falla y usando el criterio de PASCAL establezca si hubo deteccion o no (el criterio PASCAL está definido en la ecuación (3) en este artículo).

El programa debe funcionar correctamente para las 22 imágenes mencionadas, no es necesario que funcione para otro tipo de imágenes.

Ud. deberá desarrollar un código que muestre cómo resolvió este problema mostrando los paso intermedios (uso de la Transformada de Fourier, segmentación de las fallas, etc.). Deberá incluir una tabla con el número de verdaderos positivos (VP) y número de falsos positivos (FP) por imagen. Agregue en la tabla dos columnas adicionales para calcular la Tasa de VP (TP dividido por el numero total de pixeles de los defectos ideales), Tasa de FP (FP dividido por el numero total de pixeles de la imagen). Idealmente la Tasa de VP y FP deben ser 1 y 0.

SUBIR TAREA AQUI ] 

Tarea 3

Transformación de Fotografía a Pintura

Entrega: Martes 08/11/16 a las 6:30pm

[ Enunciado ]

 

El objetivo de esta tarea es desarrollar al menos dos algoritmos que sean capaces de generar -a partir de fotografías a color-, imágenes que parezcan pinturas. Por ejemplo a partir de la foto de un dormitorio se podria producir automaticamente una imagen que parezca un cuadro de Van Gogh, o a partir de un retrato generar un cuadro de Warhol, o de un paisaje un cuadro con estilo puntillista, o una acuarela de tonos pasteles.

Las fotografías a color deben ser obtenidas de aquí.

No escoger fotos abstractas ni en blanco y negro. Las fotos deben ser a color, de paisajes, arquitecturas, ciudades o retratos. El tamaño de las fotos debe ser al menos de 2M pixeles.

Probar los algoritmos desarrollados con al menos 4 fotografias. 

Para la entrega, debera indicar el URL de la foto empleada.

 

[ SUBIR TAREA AQUI ]