Infografia: Practica 1, Sintesis texturas - Javi Agenjo at UPF

Infografia: Practica 1, Sintesis texturas

Última actualización 17/04/2012

Introducción

Esta práctica consiste en la implementación de un algoritmo de sistesis de texturas.

A.A. Efros and T.K. Leung Texture Synthesis by Non-parametric Sampling

El algoritmo permite rellenar regiones de la imagen de las que no tenemos información.

Material

Desarrollo

Teneis que utilizar la libreria ImageMagick++ para esta practica, esta libreria os permitirá cargar imagenes, leer su contenido y guardarlas en disco. Para ello teneis que instalarla desde el repositorio de aplicaciones, en la categoria Grafics.

Teneis que usar GCC, si veis que no lo teneis instalado, escribid el siguiente comando desde vuestro terminal:

upf-software-install-grafic gcc

upf-software-install-grafic gcc-c++

Una vez instalada descomprimid el framework (untar morphing.tar) y dentro encontrareis el codigo a utilizar, se creará un directorio morphing con subdirectorios morphing/inc, morphing/src, morphing/obj y morphing/bin

Ahora podemos compilar el código ejemplo:

cd morphing/src

make -k prueba

cd ..

Se habrá creado un binario llamado prueba. Para ejecutarlo (situados en morphing/):

./obj/prueba AT_poster.png basura lista.txt 0.5 100

Las imágenes las podéis ver con el comando display:

display basura100.tif

Experimentos

Probar con diferentes tipos de imágenes y con varios juegos de parámetros, buscando evaluar la eficacia y los problemas del algoritmo.

Entrega

Mirar en moodle.

Se entrega desde el Aula Global

Qué se entrega:

  • Informe: introducción, el algoritmo, explicación del código, experimentos, conclusiones. En formatos html, ps, pdf o rtf.
  • Código C++, comentado, listo para compilar (con su Makefile). Formato: ASCII.
  • Las imágenes (cualquier formato) y parámetros (ascii) usados en los experimentos.
  • Se deben poder reproducir los experimentos con todos los materiales entregados, en cualquier PC de aulas, en Linux.
  • En caso de copia (entre equipos, o de otras fuentes) todos los integrantes de los equipos involucrados suspenderán inmediatamente la asignatura, y el Departament abrirá un expediente solicitando la expulsión temporal de dichos estudiantes.

Defensa

Duración: 10 minutos por equipo, con preguntas individuales. Todos los integrantes deben estar plenamente familiarizados con el trabajo de su equipo. Esta clase es de asistencia obligatoria. No hay que traer Slides, será una presentación oral delante del código.

Juego de pruebas para defensa..

Consejos

  • Leer el artículo con atención.
  • Volver a leer el artículo con atención.
  • Invertir un buen tiempo en planear el código, no ponerse a programar directamente.
  • Hacer código modular: desglosar la tarea global en partes, hacer funciones para estas partes, llamar a las funciones desde un programa principal corto.
  • Estudiar el programa C++ de ejemplo, ver qué operaciones con imágenes hay definidas y cómo se acceden y modifican los valores de los pixels.
  • Mientras se escribe el código, y para hacer ‘debugging’, hacer pruebas con imágenes pequeñas y sencillas.
  • Probar primero con imágenes en escala de grises.