PARTE 1: NONOGRAMAS

El nonograma o puzzle japonés es un pasatiempo cuyo objetivo es descubrir un dibujo oculto rellenando la cuadrícula con bloques pintados. Los números de los laterales indican la longitud de los bloques pintados en la fila o columna correspondiente, en el mismo orden que estos. Entre dos bloques de cuadrados pintados tiene que haber al menos un cuadrado no pintado.

Observa en el siguiente ejemplo cómo se obtienen los números en los laterales de una imagen (este es el problema directo):

Ahora intenta resolver algún nonograma (esto es resolver el problema inverso). Puedes hacerlo online aquí o aquí.

También puedes crear tu propio nonograma a partir de un dibujo sobre papel cuadriculado.  

PARTE 2: TOMOGRAFÍAS DE IMÁGENES

La tomografía de una imagen en blanco y negro consiste en dos pasos:

Puedes poner en práctica estas ideas utilizando OCTAVE, un lenguaje de programación para cálculo numérico de acceso libre.  

Instrucciones generales

* Para limpiar la ventana: clc.

EJERCICIO 1: DATOS PARA UN FANTASMA

El objetivo de este ejercicio es entender cómo se calcula la transformada de Radon y cómo se construye el senograma. Para ello, vamos a utilizar una imagen muy sencilla: un fantasma rectangular blanco en una habitación cuadrada negra. 

 X=[X1, X2];  Y=[Y1, Y2];

donde tanto X1,  X2 como Y1, Y2 tienen que ser números diferentes entre 1 y 100. 

Ejemplo: X=[10, 40];  Y=[20, 50];

EJERCICIO 2: DATOS PARA IMÁGENES

Ahora podemos hacer lo mismo que en el Ejercicio 1 para una imagen más compleja. 

I=imread("XXX");

donde XXX es el nombre de la imagen, incluyendo la extensión (p.ej. .jpg). Puedes elegir una imagen de las que aparecen en el EXPLORADOR DE ARCHIVOS (cuyo nombre empieza por "Imagen_") o descargar cualquier otra y copiarla en la misma carpeta.

Ejemplo:  I=imread("Imagen_elefante.jpg");

Importante: no te olvides del punto y coma final.

EJERCICIO 3: RECONSTRUCCIÓN DE UN FANTASMA

En este ejercicio vamos a intentar adivinar dónde están dos fantasmas (rectángulos blancos) en una habitación (cuadrado negro). 

     Original   |   Reconstrucción con dato completo sin filtro   |   Reconstrucción con dato completo con filtro

                                   Reconstrucción con dato parcial sin filtro      |     Reconstrucción con dato parcial con filtro

EJERCICIO 4: RECONSTRUCCIÓN DE UNA IMAGEN

Ahora vamos a ver cómo reconstruye la imagen el programa.  

I=imread("XXX");

donde XXX es el nombre de la imagen, incluyendo la extensión (.jpg). Puedes elegir una imagen de las que aparecen en el EXPLORADOR DE ARCHIVOS o descargar cualquier otra y copiarla en la misma carpeta.

Ejemplo:  I=imread("Imagen_perro.jpg");

CHARLA