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: Jueves 30/08/18 - 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 esta carpeta se encuentran 4 fotografías a color de un reloj analógico dorado, 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 negras gruesas (la pequeña corresponde al horero y la grande al minutero) y una manecilla negra delgada (segundero). 

Se debe realizar un programa que i) encuentre el reloj  en la imagen (es necesario segmentarlo del fondo y del marco), ii) realice una corrección geométrica para que el reloj se vea como un rectángulo [opcional], iii) encuntre el horero, minutero y segundero, iv) estime los ángulos de cada manecilla; y v) 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 4 imágenes contenidas en la carpeta, no es necesario que funcione para otro tipo de relojes. Este reloj no distingue entre AM y PM.

 

Subir la tarea aquí

Tarea 2

Van-gogh-ización de una foto

Entrega: Lunes 08/10/18 a las 6:30pm.

[ Enunciado ]

El objetivo de esta tarea es utilizar la Transformada de Fourier para detectar las frecuencias de una imagen a color y así transformarla en una imagen que parezca una pintura de Van-Gogh.

En este album de fotos de Chiloé escoja una fotografía, transférmela a una imagen de no más de 1 millón de pixeles manteniendo la proporción alto/ancho y genere una imagen que se parezca a una pintura de Van Gogh.

Subir la tarea aquí

Tarea 3

Restauración de Imágenes Borrosas 

Entrega: Viernes 9/11/18 a las 6:30pm

[ Enunciado ]

El objetivo de esta tarea es restaurar una imagen desdenfocada que ha sido tomada por una cámara. La imagen desenfocada es real, no es simulada, y no es posible volver a tomarla.  En el archivo zip, se encuentran tres imágenes borrosas de 6000 x 4000 pixeles, en formato NEF (formato RAW para cámaras Nikon). Para esta tarea se requiere restaurar al menos una de estas imágenes con una resolución de al menos de 1500 x 1000 pixeles. La imagen restaurada puede ser en tonos de gris o a color, y debe ser guardada en formato PNG. Para restaurar una de las tres imágenes se puede usar las otras dos imágenes. Se deberá al menos probar los métodos Wiener, BlindDeconvolution, Lucy y métodos regularizados.