de linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/tfg-garcía... ·...

104
Escuela Politécnica Superior de Linares UNIVERSIDAD DE JAÉN Escuela Politécnica Superior de Linares Trabajo Fin de Grado ______ DESARROLLO DE HERRAMIENTA DE ZOOM DIGITAL EN DOMINIOS TRANSFORMADOS Alumno: Francisco Javier García Nieto Tutor: Prof. D. Raúl Mata Campos Depto.: Ingeniería de Telecomunicación Septiembre, 2014

Upload: others

Post on 13-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

Escuela

Polit

écnic

a S

upe

rior

de L

inare

s

UNIVERSIDAD DE JAÉN Escuela Politécnica Superior de Linares

Trabajo Fin de Grado

______

DESARROLLO DE HERRAMIENTA

DE ZOOM DIGITAL EN DOMINIOS

TRANSFORMADOS

Alumno: Francisco Javier García Nieto

Tutor: Prof. D. Raúl Mata Campos Depto.: Ingeniería de Telecomunicación

Septiembre, 2014

Page 2: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

2

ÍNDICE

1. Introducción ....................................................................... 3

1.1. Introducción al zoom digital.................................... 3

1.2. Transformadas de la imagen……………………….. 4

1.3. Descripción de la aplicación……………………….. 5

2. Objetivos……………………………………………………... 6

3. Antecedentes………………………………………………… 7

4. Desarrollo e implementación del PFC…………………….. 8

4.1 Desarrollo teórico de los métodos implementados……….. 8

4.1.1. Sistemas RGB e YCBCR…………………………..... 8

4.1.2 Obtención de la transformada………………………... 9

4.1.3 Métodos de implementación de zoom………………. 12

4.2. Implementación de rutinas y métodos……………………… 55

4.2.1. Funciones de implementación de los métodos…..... 59

4.3. Desarrollo de un interfaz gráfico e implementación………. 74

5. Resultados……………………………………………………. 79

6. Conclusiones…………………………………………………. 86

7. Líneas de futuro……………………………………………… 87

8. Bibliografía……………………………………………………. 88

9. Anexos………………………………………………………. 89

9.1. Manual de Usuario………………………………………….. 89

9.1.1. Requerimientos mínimos…………………………… 89

9.1.2. Instalación…………………………………………… 89

9.1.3. Acerca del área de trabajo…..…………………….. 94

Page 3: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

3

1. INTRODUCCIÓN

1.1.- Introducción al zoom digital.

Hay dos tipos de zoom el óptico y el digital.

El primero hace un acercamiento real de la imagen, por lo tanto depende de

las prestaciones que ofrece el hardware que utilicemos para obtener la imagen.

El segundo suele ser un recorte de la imagen, se elimina parte de los

márgenes de esta mientras que la parte central se amplía digitalmente. El zoom

digital magnifica el tamaño de los píxeles y llena el espacio en blanco entre ellos con

el color que considera adecuado, con ayuda de software. Este tipo de zoom produce

imágenes de calidad muy pobre.

a) Imagen original

b) Zoom óptico c) Zoom digital

Figura 1.1 Imágenes zoom óptico y digital

Page 4: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

4

En este trabajo fin de grado se tratara de mejorar la eficiencia del zoom digital,

mediante la creación de técnicas basadas en el uso de la transformada de Fourier o

del Coseno, con el fin de obtener una mejora en la calidad de la imagen.

.

1.2.- Transformadas de la imagen.

La teoría de las transformadas ha desarrollado un papel clave en el

procesamiento de imágenes durante muchos años, y continúa siendo tema de

interés tanto en el trabajo teórico como en el de aplicación en este campo.

Aunque existen otras transformadas, nos centraremos en la transformada de

Fourier y del Coseno debido a su gran variedad de aplicaciones en problemas de

procesamiento de imágenes.

Algunas de las propiedades de la transformada de Fourier son:

Separabilidad

Traslación

Periodicidad y simetría conjugada

Rotación

Distributividad y cambio de escala

Valor medio

Laplaciano

Convolución y correlación

Muestreo

La transformada del Coseno de ha convertido en el método preferido para la

compresión de datos de imágenes, no obstante es interesante ver como actúan cada

una de ellas con las diferentes técnicas implementadas.

Page 5: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

5

1.3.- Descripción de la aplicación.

La aplicación está basada en el procesamiento de imágenes en escala de

grises (256 colores), aunque también permitirá al usuario la apertura de imágenes en

color. Una vez abierta una imagen, se podrá seleccionar la ejecución independiente

o conjunta de distintas técnicas de zoom, así como la elección de transformada.

La imagen abierta será mostrada en una ventana, y las imágenes sucesivas

obtenidas de la aplicación de las diferentes técnicas de realización de zoom serán

mostradas a medida que se vayan realizando. Cuando se ejecuten varias técnicas en

serie sobre un mismo zoom, cada técnica actuará sobre la imagen obtenida en el

método anterior.

Por otra parte, se podrán guardar imágenes resultantes de la aplicación de las

técnicas de zoom. Los formatos permitidos serán los que impongan las limitaciones

de la orden utilizada para dicho fin.

En definitiva, se trata de una interfaz intuitiva, sencilla y orientativa, que

permitirá una fácil y rápida adaptación del usuario a la aplicación

Page 6: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

6

2. OBJETIVOS

El objetivo de este trabajo fin de grado es desarrollar una serie técnicas de

implementación de zoom en imágenes, aprovechando para ello las propiedades de la

transformada seleccionada, la idea es utilizar los datos localizados en las altas frecuencias

de la transformada (que son todos aquellos valores que quedan en la periferia), para obtener

el zoom.

A tal fin se diseñará una aplicación, mediante el lenguaje de programación Matlab,

que permita mostrar el funcionamiento de cada una de las técnicas, pudiendo el usuario

aplicarlas de forma independiente, o bien en bloque siguiendo el orden que se desee. En

este sentido, hay técnicas que funcionan de manera más eficiente, según el valor de zoom a

realizar y el orden en el que se aplican a la imagen.

La implementación de la aplicación se realizará de forma modular.

Page 7: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

7

3. ANTECEDENTES

A comienzos de los años 60, la aparición de computadores construidos con circuitos

integrados, que permitió reducir de forma considerable los tiempos de procesamiento de la

información así como su almacenamiento en discos magnéticos, contribuyó a desarrollar la

disciplina relacionada con el procesamiento de señales, encargada de representar e

interpretar la información que nos proporciona el mundo real para adaptarla a las

necesidades del desarrollo humano a través de sistemas informáticos. Esta mejora hardware

posibilitó ampliar el ámbito de procesamiento de señales en una dimensión a señales en dos

dimensiones.

Desde entonces, el procesamiento de imágenes ha ido evolucionando como una

aplicación del procesado de señales en dos dimensiones; en la que las imágenes digitales

son interpretadas tanto desde el punto de vista del tratamiento de señales, como desde un

punto de vista que considera una imagen como una matriz de muestras sobre la que se

pueden realizar operaciones matemáticas. Este hecho ha permitido la apertura del uso del

procesamiento de imágenes, que en un principio se circunscribió al ámbito de la física, a un

abanico de posibilidades que abarca campos de diversa índole.

Así, gran parte de los avances tecnológicos producidos sobre todo en los últimos

años, deben parte de su éxito al procesamiento de imágenes. Avances tales como la

detección precoz de tumores en medicina; descubrimientos de sistemas planetarios y

nuevas constelaciones a partir de las imágenes obtenidas por telescopios espaciales;

detección de fenómenos naturales como pueden ser maremotos, tifones etc, mediante

imágenes captadas por satélite; reducción del tiempo y de errores en el proceso de control

de calidad al estar controlado por robots que procesan la información visual de su entorno;

aplicaciones de robótica, en la que comienzan a aparecer maquinas con autonomía propia,

etc.

Por otra parte, existen aplicaciones que permiten a un usuario normal la

implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de

programación. Y más orientado al uso práctico de estos, existen paquetes de software de

edición fotográfica, que permiten transformar y mejorar imágenes de una forma rápida y

sencilla. Paquetes como Corel, Paint Shop Pro, o software algo más didáctico como Wit,

Sherlock, Common Visual Block, etc; incluyen potentes filtros correspondientes a las etapas

que componen el procesamiento de imágenes.

Page 8: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

8

4.1 DESARROLLO TEÓRICO DE LOS MÉTODOS

IMPLEMENTADOS

4.1.1. SISTEMAS RGB E Ycbcr (LUMINANCIA Y CROMINANCIA)

La elección de trabajar con imágenes en RGB, en YCbCr o en escala de grises suele

depender, de forma general, de dos factores:

Volumen de información. El procesamiento de imágenes en color, normalmente

realizado según el espacio de color RGB o YCbCr, requiere normalmente tres veces más

cantidad de información, y por tanto mayor capacidad computacional que el procesamiento

en escala de grises.

Tipo de información requerida. Por ejemplo, en aplicaciones de amplificación de

imágenes, la información referente al color no es relevante, (aún menos relevante es en el

caso de un sistema de Luminancia y crominancia) por lo que se emplean imágenes en

escala de grises. Sin embargo, en otras aplicaciones, cuando el objetivo es clasificar objetos,

el color puede llegar a ser un factor determinante a la hora de distinguir un objeto de otro;

siendo en este caso necesario el empleo de imágenes en color, aun así sera posible aplicar

el zoom con cada uno de los tres sistemas.

El procedimiento empleado para la obtención de los niveles de gris es por medio de

la función de Matlab RGB2gray. Para ello, a partir de la matriz RGB de la imagen, se obtiene

la matriz en escala de grises equivalente.

De manera análoga será posible pasar una imagen en formato RGB a otro formato

YcbCr mediante el uso de la función RGB2YCBCR, para ello a partir dela matriz

tridimensional RGB se obtiene otra matriz tridimensional equivalente YCBCR.

Page 9: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

9

a) Imagen en color b) Imagen en escala de grises

Figura 4.1 Ejemplo de conversión color – escala de grises

a) Imagen RGB b) Imagen YCBCR

Figura 4.2 Ejemplo de conversión RGB – YCBCR

4.1.2 OBTENCIÓN DE LA TRASNFORMADA

Esta etapa está orientada a la obtención de la transformada correspondiente de la

imagen que estamos tratando, en este proceso la imagen no experimenta ningún aumento

del contenido de su información. Por tanto, el objetivo es el de extraer información, acerca de

las altas y bajas frecuencias de la imagen, interesándonos más por las altas frecuencias, que

Page 10: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

10

son las que quedan en los márgenes exteriores, y sobre las que se aplicarán cada uno de

los métodos implementados.

Se han considerado dos tipos de transformadas la Transformada de Fourier (TF) y la

Transformada del Coseno (TC), aunque ambas técnicas sitúan las altas frecuencias (AF) en

los márgenes exteriores, en el caso de la TF las bajas frecuencias (BF) quedan

concentradas en el centro, mientras que en la TC estas quedarían localizadas en el marco

superior izquierdo, esto supondrá tener que realizar dos implementaciones diferentes para

cada método de amplificación, según sea la transformada elegida

a) Imagen original EG

b) Transformada de Fourier c) Transformada del Coseno

Figura 4.3 Ejemplo de TF y TC de una imagen EG

Page 11: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

11

a) Imagen original RGB

b) Transformada de Fourier c) Transformada del Coseno

Figura 4.4 Ejemplo de TF y TC de una imagen RGB

Page 12: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

12

a) Imagen original RGB

b) Transformada de Fourier c) Transformada del Coseno

Figura 4.5 Ejemplo de TF y TC de una imagen YCBCR

4.1.3 MÉTODOS DE IMPLEMENTACIÓN DE ZOOM

Para desarrollar las diferentes técnicas de implementación de zoom se han seguido

dos filosofías de actuación distintas, las cuales dependerán del tipo de transformada elegida

como herramienta de trabajo.

Estas dos filosofías hacen hincapié en la manera de repartir los datos que no

disponemos y que hemos de inventarnos hasta completar el total del zoom designado.

Concretamente, en el caso de la transformada de Fourier, la forma de actuar consiste en

obtener una matriz mayor que la original, cuyo tamaño dependerá directamente del zoom

que se desee realizar, para posteriormente copiar la transformada de Fourier de la imagen

original en el centro de la matriz de mayor tamaño, quedando el borde exterior para rellenar

con los datos que faltan hasta completar el total de la matriz.

Page 13: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

13

a) Transformada de Fourier

b) Transformada de Fourier resultante

Figura 4.6 Asignación de la TF a la matriz resultante

Por el contrario cuando trabajamos con la Transformada del Coseno, el reparto de la

información que hemos de añadir a la matriz original se hace de manera diferente, en este

caso también se obtiene una matriz de mayor tamaño que el de la imagen original, este

tamaño estará directamente relacionado con el zoom introducido, a continuación se situara

la Transformada del Coseno de la imagen original en la esquina superior izquierda de la

matriz mayor, quedando el resto para rellenar con diferentes datos según sea el método

seleccionado.

a) Transformada del Coseno b) Transformada del Coseno resultante

Figura 4.7 Asignación de la TC a la matriz resultante

AF AF AF AF

AF BF BF AF

AF BF BF AF

AF AF AF AF

AF AF AF AF

AF BF BF AF

AF BF BF AF

AF AF AF AF

BF BF AF AF

BF BF AF AF

AF AF AF AF

AF AF AF AF

BF BF AF AF

BF BF AF AF

AF AF AF AF

AF AF AF AF

Page 14: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

14

Así pues para cada método implementado tendremos dos formas de repartir la

información relativa a la parte amplificada de la imagen, aunque la naturaleza de esta

información será la misma para los dos tipos de transformadas.

Método de la matriz Ceros

Este método es de una gran simplicidad, básicamente consiste en rellenar la

información que nos falta con ceros, lógicamente se verá disminuido el valor medio de la

imagen, lo cual se traducirá en una pérdida de intensidad del brillo. Pero a pesar de lo simple

del método es bastante eficiente para zoom grandes.

Transformada de Fourier

Lo primero que hace este método es crear una matriz poniendo todos sus elementos

con el valor cero, gracias a que Matlab tiene una gran variedad de herramientas para

trabajar con matrices, la acción anterior se realiza con la función zeros (dimensión de la

matriz), a continuación se sobrescribe parte de la matriz “todos ceros” con la Transformada

de Fourier de la imagen original, haciendo coincidir a esta con la parte central de la matriz

“todos ceros”.

El resultado es una matriz de mayor tamaño que la original, donde la información

conocida se situara en la zona central, mientras que los márgenes exteriores quedaran con

un valor constante e igual a cero.

a) Transformada de Fourier

b) Transformada de Fourier resultante

Figura 4.8 Sustitución de los datos en la matriz final

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 AF AF AF AF 0 0

0 0 AF BF BF AF 0 0

0 0 AF BF BF AF 0 0

0 0 AF AF AF AF 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

AF AF AF AF

AF BF BF AF

AF BF BF AF

AF AF AF AF

Page 15: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

15

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método

a) Imagen Original c) Método de los ceros

b) Transformada de Fourier d) Imagen ampliada

Figura 4.9 Ejemplo de zoom por método de los cero

Transformada del Coseno

En este caso y para el mismo método, se opera de igual manera que en el apartado

anterior, la diferencia radica en la parte de la matriz “todos ceros” que se ha de sobrescribir

con la Transformada del Coseno, para este método coincide con la parte superior izquierda

de la matriz “todos ceros”.

Page 16: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

16

El resultado es una matriz de mayor tamaño que la original, donde la información

conocida se situara en la zona superior izquierda, mientras que los bordes inferior y derecho,

quedarán con un valor constante e igual a cero.

a) Transformada del Coseno

b) Transformada del Coseno resultante

Figura 4.10 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

BF BF AF AF

BF BF AF AF

AF AF AF AF

AF AF AF AF

BF BF AF AF 0 0 0 0

BF BF AF AF 0 0 0 0

AF AF AF AF 0 0 0 0

AF AF AF AF 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Page 17: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

17

a) Imagen original c) Método de los ceros

b) Transformada del Coseno d) Imagen ampliada

Figura 4.11 Ejemplo de zoom por método de los ceros con TC

Aparentemente vemos como para este método, obtenemos una respuesta similar

utilizando cualquiera de las dos herramientas disponibles, esto no ocurre de igual forma con

otros métodos, apreciándose claras diferencias entre usar la TF o la TC, e incluso en

algunos métodos en concreto y para un determinado zoom veremos que no es posible

realizar el mismo con la TC.

Método de la matriz Constante

A diferencia del método de los ceros aquí no se utilizara una matriz con todos sus

elementos puestos a cero, sino otra con “todos unos” (por medio de la función ones

(dimensión de la matriz ), previamente se obtiene un valor al azar de entre los valores de la

transformada, una vez se tiene este valor se multiplica la matriz “todos unos” por él.

Page 18: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

18

Finalmente se obtiene una matriz de tamaño mayor que la imagen original, y cuyos

elementos son todos iguales al valor aleatorio obtenido de la transformada seleccionada.

X(1,2)*matriz unos = Cte

Figura 4.12 Obtención de los datos a partir de la Transformada

Transformada de Fourier

Para este caso se procede igual que en el método de los ceros, es decir se

sobrescribe la parte central de la matriz obtenida anteriormente, sustituyéndola por la

Transformada de Fourier de la imagen original.

Figura 4.13 Sustitución de los datos en la matriz final

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

Cte Cte Cte Cte Cte Cte Cte Cte

Cte Cte Cte Cte Cte Cte Cte Cte

Cte Cte x(1,1) x(1,2) x(1,3) x(1,4) Cte Cte

Cte Cte x(2,1) x(2,2) x(2,3) x(2,4) Cte Cte

Cte Cte x(3,1) x(3,2) x(3,3) x(3,4) Cte Cte

Cte Cte x(4,1) x(4,2) x(4,3) x(4,4) Cte Cte

Cte Cte Cte Cte Cte Cte Cte Cte

Cte Cte Cte Cte Cte Cte Cte Cte

x(1,1) x(1,2) x(1,3) x(1,4)

x(2,1) x(2,2) x(2,3) x(2,4)

x(3,1) x(3,2) x(3,3) x(3,4)

x(4,1) x(4,2) x(4,3) x(4,4)

Page 19: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

19

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método

a) Imagen Original c) Método de la Constante

b) Transformada de Fourier d) Imagen ampliada

Figura 4.14 Ejemplo de zoom por método de la constante con TF

En este caso se aprecia como la imagen ampliada tiende a acercarse a la intensidad

de brillo del valor constante, esto es debido a la modificación del valor medio el cual tiende al

Page 20: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

20

valor aleatorio tomado de la Transformada de Fourier, siendo casi igual a este, mientras más

grande es el zoom.

Transformada del Coseno

Aquí aplicamos la misma técnica que en el método de los ceros, pero sobrescribiendo

los datos de la transformada del Coseno, en la parte superior izquierda de la matriz, cuyos

elementos son todos iguales, y de valor igual al elemento aleatorio de la transformada del

Coseno.

Figura 4.15 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

x(1,1) x(1,2) x(1,3) x(1,4) Cte Cte Cte Cte

x(2,1) x(2,2) x(2,3) x(2,4) Cte Cte Cte Cte

x(3,1) x(3,2) x(3,3) x(3,4) Cte Cte Cte Cte

x(4,1) x(4,2) x(4,3) x(4,4) Cte Cte Cte Cte

Cte Cte Cte Cte Cte Cte Cte Cte

Cte Cte Cte Cte Cte Cte Cte Cte

Cte Cte Cte Cte Cte Cte Cte Cte

Cte Cte Cte Cte Cte Cte Cte Cte

x(1,1) x(1,2) x(1,3) x(1,4)

x(2,1) x(2,2) x(2,3) x(2,4)

x(3,1) x(3,2) x(3,3) x(3,4)

x(4,1) x(4,2) x(4,3) x(4,4)

Page 21: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

21

a) Imagen original c) Método de la Constante

b) Transformada del Coseno d) Imagen ampliada

Figura 4.16 Ejemplo de zoom por método de la constante con TC

Como ocurre con este mismo método para el caso de la TF, el valor medio se ve

afectado, aproximándose cada vez más al valor aleatorio de la TC, a medida que el zoom va

siendo más grande.

Método de la Matriz Aleatoria

Tomando como referencia el modelo de la constante, este método es muy similar,

presentando algunas diferencias, como el hecho de crear una matriz aleatoria de mayor

tamaño que la matriz de la imagen original, cuyos valores oscilarán entre 0 y 1, para

Page 22: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

22

posteriormente multiplicar esta matriz por el valor aleatorio obtenido de la transformada

correspondiente, TF o bien TC.

Se obtiene por tanto una matriz cuyos elementos oscilarán entre los valores

pertenecientes al intervalo [0 a 1*valor aleatorio].

X(1,2)*matriz aleatoria [0−1]

Figura 4.17 Obtención de los datos a partir de la Transformada

Transformada de Fourier

El proceso es el mismo que el seguido por todos los métodos, es decir una vez que

tenemos la matriz aleatoria, sobrescribimos la parte central de esta, con la TF de la imagen

original.

Figura 4.18 Sustitución de los datos en la matriz final

x(1,2)*matriz aleatoria[0−1]=matriz aleatoria[0−x(1,2)]

Intervalo[0−x(1,2)]=Int

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

0−1 0−1 0−1 0−1 0−1 0−1 0−1 0−1

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

x(1,1) x(1,2) x(1,3) x(1,4)

x(2,1) x(2,2) x(2,3) x(2,4)

x(3,1) x(3,2) x(3,3) x(3,4)

x(4,1) x(4,2) x(4,3) x(4,4)

Int Int Int Int Int Int Int Int

Int Int Int Int Int Int Int Int

Int Int x(1,1) x(1,2) x(1,3) x(1,4) Int Int

Int Int x(2,1) x(2,2) x(2,3) x(2,4) Int Int

Int Int x(3,1) x(3,2) x(3,3) x(3,4) Int Int

Int Int x(4,1) x(4,2) x(4,3) x(4,4) Int Int

Int Int Int Int Int Int Int Int

Int Int Int Int Int Int Int Int

Page 23: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

23

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

a) Imagen original c) Método matriz aleatoria

b) Transformada de Fourier d) Imagen ampliada

Figura 4.19 Ejemplo de zoom por método de la matriz aleatoria con TF

Al igual que en los otros métodos, en este caso el valor medio de la imagen también

se ve afectado, acercándose cada vez más al intervalo [0−valor aleatorio], a medida que el

zoom es mayor.

Page 24: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

24

Transformada del Coseno

Procedemos de igual forma que en los apartados anteriores, es decir, sobrescribimos

la parte superior izquierda de la matriz con la TC de la imagen original.

Figura 4.20 Sustitución de los datos en la matriz final

x(1,2)*matriz aleatoria[0−1]=matriz aleatoria[0−x(1,2)]

Intervalo[0−x(1,2)]=Int

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

x(1,1) x(1,2) x(1,3) x(1,4) Int Int Int Int

x(2,1) x(2,2) x(2,3) x(2,4) Int Int Int Int

x(3,1) x(3,2) x(3,3) x(3,4) Int Int Int Int

x(4,1) x(4,2) x(4,3) x(4,4) Int Int Int Int

Int Int Int Int Int Int Int Int

Int Int Int Int Int Int Int Int

Int Int Int Int Int Int Int Int

Int Int Int Int Int Int Int Int

x(1,1) x(1,2) x(1,3) x(1,4)

x(2,1) x(2,2) x(2,3) x(2,4)

x(3,1) x(3,2) x(3,3) x(3,4)

x(4,1) x(4,2) x(4,3) x(4,4)

Page 25: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

25

a) Imagen original c) Método matriz aleatoria

b) Transformada del Coseno d) Imagen ampliada

Figura 4.21 Ejemplo de zoom por método de la matriz aleatoria con TC

Como se aprecia se obtienen resultados muy similares a los conseguidos utilizando la

TF, por lo tanto, la elección de una Transformada u otra es irrelevante para este método.

Método de la matriz Distribución Normal

El fundamento de este método se basa en la obtención de una pequeña muestra de

datos de la TF o TC, según proceda, con el fin de obtener una serie de parámetros

necesarios para el cálculo de una matriz, la cual se define como una distribución normal o

gaussiana, caracterizada por los parámetros calculados anteriormente.

Estos parámetros son la media real, la media compleja, la varianza real y la varianza

compleja; hay que hallar dos medias y dos varianzas por tratarse de números complejos.

Page 26: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

26

Posteriormente y gracias a la función de Matlab normrnd (parámetros), se crea la

matriz deseada para el zoom requerido.

Figura 4.22 Obtención de los datos a partir del Transformada

Media real (μ)

Varianza real (σ2)

Media compleja

Varianza compleja

Transformada de Fourier

Una vez realizado lo expuesto anteriormente se procederá de igual forma que en

todos los métodos anteriores, esto es, sustituyendo la TF de la imagen original por la parte

central de la matriz obtenida a partir de la distribución normal o gaussiana de la muestra

tomada de la TF.

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

X(1,3) X(1,4)

X(2,3) X(2,4)

Page 27: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

27

Figura 4.23 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

a) Imagen original c) Método matriz normal

b) Transformada de Fourier d) Imagen ampliada

Figura 4.24 Ejemplo de zoom por método de la matriz normal con TF

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) X(1,1) X(1,2) X(1,3) X(1,4) f(x) f(x)

f(x) f(x) X(2,1) X(2,2) X(2,3) X(2,4) f(x) f(x)

f(x) f(x) X(3,1) X(3,2) X(3,3) X(3,4) f(x) f(x)

f(x) f(x) X(4,1) X(4,2) X(4,3) X(4,4) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

Page 28: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

28

Como podemos observar al amplificar la imagen también se ve afectado el valor

medio, sin embargo, a diferencia de los métodos anteriores, esta variación estará

relacionada con el valor medio de la muestra tomada de la TF.

Transformada del Coseno

Igual que en el caso de la TF para este método, pero sustituyendo la parte superior

izquierda de la matriz, en vez de la central, por la TC.

Figura 4.25 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,1) X(1,2) X(1,3) X(1,4) f(x) f(x) f(x) f(x)

X(2,1) X(2,2) X(2,3) X(2,4) f(x) f(x) f(x) f(x)

X(3,1) X(3,2) X(3,3) X(3,4) f(x) f(x) f(x) f(x)

X(4,1) X(4,2) X(4,3) X(4,4) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

Page 29: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

29

a) Imagen original c) Método matriz normal

b) Transformada del coseno d) Imagen ampliada

Figura 4.26 Ejemplo de zoom por método de la matriz normal con TC

Como apreciamos la calidad de la imagen ampliada es bastante deficiente, esto es

debido principalmente a la elección de la muestra de la TC, si optimizamos el criterio de

elección de la muestra para la TF, es lógico pensar que al utilizar este mismo criterio para la

TC nos de distintos resultados, por lo tanto si elegimos una muestra distinta para cada tipo

de Transformada mejorara la calidad de la imagen.

Page 30: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

30

a) Muestra sin optimizar b) Muestra optimizada

Figura 4.27 Imagen Ampliada por método de la matriz normal con TC

Método de la Copia

A diferencia de lo que ocurre con todos los métodos vistos hasta ahora, los cuales

pueden utilizarse para cualquier zoom, independientemente del valor de este, con el método

de la copia, existe un valor límite de zoom, el cual no puede superarse ya que, el hacerlo

implicaría un error de ejecución.

La necesidad de esta imposición se entiende al conocer el procedimiento para

obtener los datos que faltan hasta completar el zoom, el valor máximo de zoom que puede

realizarse con este método, esta íntimamente relacionado con las dimensiones de la

Transformada que se ha elegido.

La obtención de estos datos se realiza de la siguiente manera:

Se dispone de una transformada de dimensión (filasxcolumnas), a la cual vamos a

aplicar un zoom del 50%, por lo tanto y = filas*0.5 e x = columnas*0.5, el resultado final es

una nueva matriz de dimensión ((filas+y)x(columnas+x)), esto quiere decir que tengo que

añadir datos hasta completar esas y filas y x columnas, y la forma de hacerlo, es cogerlas

directamente de la transformada elegida, de ahí que el límite del zoom que se puede realizar

venga impuesto por la dimensión de la transformada.

Page 31: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

31

Figura 4.28 Obtención de los datos a partir de la Transformada

Transformada de Fourier

La manera de proceder es la misma que para los métodos anteriores, esto es, se

crea una matriz final, cuyo tamaño dependerá del zoom que se desee realizar,

posteriormente se sobrescribe la parte central de esta matriz final con la TF; a partir de aquí,

para completar el marco que quedan alrededor, copiaremos trozos de la TF.

Así pues si queremos completar los marcos izquierdo y derecho, copiaremos un

número de columnas de la TF, (en concreto las que están en el lado del marco que

queremos completar) igual al número de columnas de dicho marco; de igual forma

actuaremos con los marcos superior e inferior, pero en este caso trabajaremos con filas.

Asignando de esta manera los diferentes marcos, quedarían sin completar las cuatro

esquinas de la matriz final, el procedimiento que se seguirá para completarlas es obtener la

esquina análoga de igual tamaño de la TF, para después asignarla a la esquina

correspondiente de la matriz final.

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,3) X(1,4)

X(2,3) X(2,4)

X(3,3) X(3,4)

X(4,3) X(4,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(3,3) X(3,4)

X(4,3) X(4,4)

Page 32: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

32

Figura 4.29 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

X(1,1) X(1,2) X(1,1) X(1,2) X(1,3) X(1,4) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,1) X(2,2) X(2,3) X(2,4) X(2,3) X(2,4)

X(1,1) X(1,2) X(1,1) X(1,2) X(1,3) X(1,4) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,1) X(2,2) X(2,3) X(2,4) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,1) X(3,2) X(3,3) X(3,4) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,1) X(4,2) X(4,3) X(4,4) X(4,3) X(4,4)

X(3,1) X(3,2) X(3,1) X(3,2) X(3,3) X(3,4) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,1) X(4,2) X(4,3) X(4,4) X(4,3) X(4,4)

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

Page 33: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

33

a) Imagen original c) Método de la Copia

b) Transformada de Fourier d) Imagen ampliada

Figura 4.30 Ejemplo de zoom por método de la copia con TF

Si observamos la imagen amplificada vemos como aparecen unas pequeñas

distorsiones, las cuales irán creciendo conforme el zoom vaya siendo más grande, hasta

alcanzar el valor límite del zoom, a partir del cual no podrá realizarse la amplificación de la

imagen.

Para este método en concreto el valor máximo de zoom que podremos aplicar a una

imagen será de 200%, lo cual se traduciría en copiar la TF 8 veces, hasta completar los

marcos superior, inferior, izquierdo y derecho, así como las cuatro esquinas.

Page 34: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

34

Transformada del Coseno

Una vez obtenida la matriz final, se sobrescribe la parte superior izquierda de la

misma con la TC, a continuación se completan las columnas que faltan con otras tantas

columnas de la TC, y con las filas se procederá de igual modo.

A diferencia del caso anterior en el que aparecían las 4 esquinas de la matriz final sin

asignar, para este caso solo aparece una esquina, la cual se asigna de igual forma que

cuando utilizamos la TF.

Figura 4.31 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,1) X(1,2) X(1,3) X(1,4) X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4) X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4) X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4) X(4,1) X(4,2) X(4,3) X(4,4)

X(1,1) X(1,2) X(1,3) X(1,4) X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4) X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4) X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4) X(4,1) X(4,2) X(4,3) X(4,4)

Page 35: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

35

a) Imagen original c) Método de la copia

b) Transformada del Coseno d) Imagen ampliada

Figura 4.32 Ejemplo de zoom por método de la copia con TC

Como vemos, aparecen las misas distorsiones que con la TF, la principal diferencia

entre el método de la copia utilizando la TF o utilizando la TC es, que en el caso de usar TC,

el valor máximo de zoom que podemos realizar es del 100%, mientras que con la TF era del

200%.

Método de la Reflexión

Es el equivalente a reflejar parte de la imagen en un espejo, Dependiendo de la

dirección del reflejo, se obtendrá un reflejo vertical o un reflejo horizontal.

Page 36: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

36

El modelo intuitivo que define un reflejo vertical superior es aquel en el que las filas

de la parte superior de la transformada de la imagen se copian las primeras, mientras que

las filas que estén más hacia el interior de la transformada se copiaran las últimas, de igual

forma un reflejo vertical inferior es aquel en el que las filas de la parte inferior de la

Transformada se copian las primeras, mientras que las filas que estén más hacia el interior

se copiaran las últimas.

De forma análoga, el reflejo horizontal derecho se obtiene mediante la copia de las

columnas de la parte derecha de la Transformada en sentido de fuera hacia dentro, mientras

que para el reflejo horizontal izquierdo se sigue el mismo procedimiento pero con las

columnas de la parte izquierda de la Transformada.

Especial mención requiere la(s) esquinas que quedan sin asignar (al igual que

ocurría con el método de la copia), para este caso en vez de copiar la matriz correlativa de la

Esquina de la transformada tal cual, primero se intercambia el orden de las filas y las

columnas, las últimas serán las primeras, y posteriormente se copia en la esquina

correspondiente, sería como una reflexión vertical y horizontal.

Por lo tanto el método de la reflexión es muy parecido al de la copia pero teniendo en

cuenta el intercambio de filas y columnas.

Figura 4.33 Obtención de los datos a partir de la Transformada

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,4) X(1,3)

X(2,4) X(2,3)

X(3,4) X(3,3)

X(4,4) X(4,3)

X(4,4) X(4,3)

X(3,4) X(3,3)

X(4,1) X(4,2) X(4,3) X(4,4)

X(3,1) X(3,2) X(3,3) X(3,4)

Page 37: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

37

Transformada de Fourier

Una vez explicado el procedimiento para obtener las diferentes reflexiones, solo

basta con decir que tipo de reflexiones habrá que realizar en el caso de utilizar la TF.

Así pues tendremos que aplicar a la parte correspondiente de la TF una reflexión

vertical superior e inferior, una reflexión horizontal izquierda y derecha, así como una doble

reflexión vertical/horizontal, la cual tendremos que realizar 4 veces con el fin de obtener las

cuatro esquinas que quedan sin asignar, por supuesto habrá que sobrescribir la parte central

de la matriz final con la TF, lo cual es común en todos los métodos vistos hasta ahora

cuando utilizan la TF.

El proceso de reflexión y asignación de los datos se realiza al mismo tiempo, ya que

Matlab permite trabajar con matrices de una manera natural y sencilla, simplemente

modificando los índices de las mismas.

Figura 4.34 Sustitución de datos en la matriz final

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(2,2) X(2,1) X(2,1) X(2,2) X(2,3) X(2,4) X(2,4) X(2,3)

X(1,2) X(1,1) X(1,1) X(1,2) X(1,3) X(1,4) X(1,4) X(1,3)

X(1,2) X(1,1) X(1,1) X(1,2) X(1,3) X(1,4) X(1,4) X(1,3)

X(2,2) X(2,1) X(2,1) X(2,2) X(2,3) X(2,4) X(2,4) X(2,3)

X(3,2) X(3,1) X(3,1) X(3,2) X(3,3) X(3,4) X(3,4) X(3,3)

X(4,2) X(4,1) X(4,1) X(4,2) X(4,3) X(4,4) X(4,4) X(4,3)

X(4,2) X(4,1) X(4,1) X(4,2) X(4,3) X(4,4) X(4,4) X(4,3)

X(3,2) X(3,1) X(3,1) X(3,2) X(3,3) X(3,4) X(3,4) X(3,3)

Page 38: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

38

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

a) Imagen original c) Método de la Reflexión

b) Transformada de Fourier d) Imagen Ampliada

Figura 4.35 Ejemplo de zoom por método de la reflexión con TF

Como se aprecia aparece distorsiones muy similares a las del método de la copia,

esto es así porque el método de la reflexión es en realidad una variante del método de la

Page 39: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

39

copia, básicamente se trata del mismo método, por lo tanto tampoco se podrán realizar zoom

por valores superiores al 200%.

Transformada del Coseno

Para este caso concreto solo habrá que realizar una reflexión vertical inferior, una

horizontal derecha y una reflexión doble vertical/horizontal para obtener la única esquina que

queda por asignar a la matriz final, a esto hay que sumar la tarea común para cualquier

método que utilice como herramienta la TC, la cual es ni más ni menos que, sobrescribir la

parte superior izquierda de la matriz final con la TC.

Figura 4.36 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,1) X(1,2) X(1,3) X(1,4) X(1,4) X(1,3) X(1,2) X(1,1)

X(2,1) X(2,2) X(2,3) X(2,4) X(2,4) X(2,3) X(2,2) X(2,1)

X(3,1) X(3,2) X(3,3) X(3,4) X(3,4) X(3,3) X(3,2) X(3,1)

X(4,1) X(4,2) X(4,3) X(4,4) X(4,4) X(4,3) X(4,2) X(4,1)

X(4,1) X(4,2) X(4,3) X(4,4) X(4,4) X(4,3) X(4,2) X(4,1)

X(3,1) X(3,2) X(3,3) X(3,4) X(3,4) X(3,3) X(3,2) X(3,1)

X(2,1) X(2,2) X(2,3) X(2,4) X(2,4) X(2,3) X(2,2) X(2,1)

X(1,1) X(1,2) X(1,3) X(1,4) X(1,4) X(1,3) X(1,2) X(1,1)

Page 40: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

40

a) Imagen original c) Método de la reflexión

b) Transformada del Coseno d) Imagen ampliada

Figura 4.37 Ejemplo de zoom por método de la reflexión con TC

Como vemos aparecen las mismas distorsiones que usando la TF, y las mismas

características del método de la copia usando la TC son válidas para el método de la

reflexión, lo cual se traduce en la imposibilidad de realizar un zoom superior al 100%.

Método Polar

Este método se basa en el comportamiento polar que presentan las transformadas de

algunas imágenes, y así obtener los datos que faltan hasta completar el zoom aprovechando

esta información.

Page 41: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

41

Más concretamente lo que se hace en este método es utilizar una pequeña muestra

de la transformada, para obtener el total de los datos que faltan, en particular se toma parte

de la columna que esta pegando al marco (izquierdo o derecho) que queremos completar, y

por otro lado, también se toma parte de la fila que esta pegando al marco (superior o inferior)

que queremos completar.

Sin embargo hay que decir que el último elemento de estas filas o columnas no se

considera, así pues por ejemplo, para una fila se tomará desde la columna 1 a la n-1, siendo

n el número de columnas, mientras que para una columna se seleccionarán desde la fila 1

hasta la m-1, siendo m el número de filas.

Por otro lado los valores de las esquinas de la transformada seleccionada, se

prolongarán diagonalmente hasta alcanzar el extremo de un marco, ya sea vertical u

horizontal, o coincidir con la esquina de la matriz final si la transformada es una matriz

cuadrada

Una vez hecho esto se empieza a copiar las filas y columnas elegidas de la

Transformada correspondiente y se irán asignado a las filas y columnas que restan para

completar el zoom, habrá que tener en cuenta que cada fila asignada, estará desplazada 1

columna hacia la derecha o la izquierda, con respecto a la fila anterior, al igual que cada

columna también estará desplazada 1 fila arriba o abajo, con respecto a la columna anterior.

Por último para completar las superficies que quedan después de hacer todas las

asignaciones, lo que se hace es coger una superficie análoga de la transformada y realizar

una distribución normal al igual que en el “método de la matriz distribución normal”, pero en

este caso, la muestra estará optimizada para la superficie de datos que queremos completar.

Figura 4.38 Obtención de datos a partir de la Transformada

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,4)

X(2,4)

X(3,4)

X(4,4)

X(4,1) X(4,2) X(4,3)

Page 42: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

42

Transformada de Fourier

Para realizar este método con la TF, dividimos a esta en 4 regiones de igual tamaño,

para cada región obtenemos una fila y una columna que tengan las características vistas

anteriormente, una vez que obtenemos estos datos se realiza la asignación, esta se hace

desde el interior de la matriz final hacia fuera, por lo tanto nos quedarían 4 zonas

triangulares sin asignar situadas en puntos intermedios de los marcos horizontales y

verticales de la matriz final.

Figura 4.39a Obtención de fila y columna de cada región de la TF

Figura 4.39b Matriz final después de asignar datos

X(1,3)

X(1,2)

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(2,1)

X(2,4)

X(3,1)

X(3,4)

X(4,3)

X(4,2)

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(1,1) X(1,2) X(1,3) X(1,4) X(2,4)

X(2,1) X(1,1) X(1,2) X(1,3) X(1,4) X(2,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(3,1) X(4,1) X(4,2) X(4,3) X(4,4) X(3,4)

X(3,1) X(4,1) X(4,2) X(4,3) X(4,4) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

Page 43: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

43

Para obtener los valores de las regiones que faltan se cogerá una región análoga de

la TF

4.40 Sustitución de los datos en la matriz final

Media real (μ)

Varianza real (σ2)

Media compleja

Varianza compleja

Hay que resaltar que la porción de superficie análoga de la TF es significativamente

más pequeña que la superficie que queremos completar, si bien por causas de espacio en el

ejemplo es del mismo tamaño.

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método

X(1,1) X(1,2) f(x) f(x) X(1,3) X(1,4)

X(2,1) X(1,1) X(1,2) f(x) X(1,3) X(1,4) X(2,4)

X(2,1) X(1,1) X(1,2) X(1,3) X(1,4) X(2,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(3,1) X(4,1) X(4,2) X(4,3) X(4,4) X(3,4)

X(3,1) X(4,1) X(4,2) X(4,3) X(4,4) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,3) X(1,4)

X(2,3)

Page 44: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

44

a) Imagen original c) Método Polar

b) Transformada de Fourier d) Imagen ampliada

Figura 4.41 Ejemplo de zoom por método polar con TF

Como podemos observar el valor medio se ve afectado, apareciendo la imagen con

más oscuridad, también aparecen unas pequeñas distorsiones en forma de aspa; este

método funcionara cada vez mejor a medida que la TF presente más características polares.

Transformada del Coseno

Este caso es más sencillo que el anterior, aquí solo tenemos que coger la última fila y

columna de la TC, excluyendo el último elemento de las mismas, posteriormente se procede

a asignar esta fila y columna de igual forma que en el apartado anterior.

Page 45: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

45

A diferencia del método polar con la TF, al usar la TC solo nos quedan dos

superficies de la matriz final por asignar, situadas en la parte superior derecha e inferior

izquierda de esta, la manera de obtener los datos correspondientes a estas regiones es la

misma que para el caso de usar TF, esto es, se calcula una distribución normal con los datos

correspondientes a una región correlativa de la TC.

Media real (μ)

Varianza real (σ2)

Media compleja

Varianza compleja

Figura 4.42 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(3,1)

X(4,1) X(4,2)

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4) X(1,4)

X(3,1) X(3,2) X(3,3) X(3,4) X(2,4) X(1,4)

X(4,1) X(4,2) X(4,3) X(4,4) X(3,4) X(2,4) X(1,4)

f(x) X(4,1) X(4,2) X(4,3) X(4,4) X(3,4) X(2,4) X(1,4)

f(x) f(x) X(4,1) X(4,2) X(4,3) X(4,4) X(3,4) X(2,4)

f(x) f(x) f(x) X(4,1) X(4,2) X(4,3) X(4,4) X(3,4)

f(x) f(x) f(x) f(x) X(4,1) X(4,2) X(4,3) X(4,4)

Page 46: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

46

a) Imagen original c) Método Polar

b) Transformada del Coseno d) Imagen ampliada

Figura 4.43 Ejemplo de zoom por método polar con TC

Lo dicho anteriormente para el método polar con la TF es extrapolable cuando se usa

la TC, la única diferencia es que con la TC se requiere menos tiempo de procesamiento.

A continuación se muestra el resultado obtenido al aplicar este método a una imagen

con las características polares más acentuadas, apreciándose una mejoría en la calidad de

la imagen ampliada.

En este caso utilizaremos la TF para realizar un zoom del 50%

Page 47: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

47

a) Imagen original c) Método Polar

b) Transformada de Fourier d) Imagen ampliada

Figura 4.44 Ejemplo de zoom por método polar con TC

Método de la matriz Distribución de Poisson

El fundamento de este método se basa en la obtención de una pequeña muestra de

datos de la TF o TC, según proceda, con el fin de obtener una serie de parámetros

necesarios para el cálculo de una matriz, la cual se define como una distribución de Poisson,

caracterizada por los parámetros calculados anteriormente.

En este caso los parámetro son la media real, la media compleja; hay que hallar dos

medias por tratarse de números complejos.

Page 48: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

48

Posteriormente y gracias a la función de Matlab poissrnd (parámetros), se crea la

matriz deseada para el zoom requerido.

Figura 4.45 Obtención de los datos a partir del Transformada

Media real (μ)

Media compleja

Transformada de Fourier

Una vez realizado lo expuesto anteriormente se procederá de igual forma que en

todos los métodos anteriores, esto es, sustituyendo la TF de la imagen original por la parte

central de la matriz obtenida a partir de la distribución normal o gaussiana de la muestra

tomada de la TF.

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

X(1,3) X(1,4)

X(2,3) X(2,4)

Page 49: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

49

Figura 4.46 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este método.

a) Imagen original c) Método matriz Poisson

b) Transformada de Fourier d) Imagen ampliada

Figura 4.47 Ejemplo de zoom por método de la matriz de Poisson con TF

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) X(1,1) X(1,2) X(1,3) X(1,4) f(x) f(x)

f(x) f(x) X(2,1) X(2,2) X(2,3) X(2,4) f(x) f(x)

f(x) f(x) X(3,1) X(3,2) X(3,3) X(3,4) f(x) f(x)

f(x) f(x) X(4,1) X(4,2) X(4,3) X(4,4) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

Page 50: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

50

Como podemos observar al amplificar la imagen también se ve afectado el valor

medio, sin embargo, a diferencia de los métodos anteriores, esta variación estará

relacionada con el valor medio de la muestra tomada de la TF.

Transformada del Coseno

Igual que en el caso de la TF para este método, pero sustituyendo la parte superior

izquierda de la matriz, en vez de la central, por la TC.

Figura 4.48 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método.

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,1) X(1,2) X(1,3) X(1,4) f(x) f(x) f(x) f(x)

X(2,1) X(2,2) X(2,3) X(2,4) f(x) f(x) f(x) f(x)

X(3,1) X(3,2) X(3,3) X(3,4) f(x) f(x) f(x) f(x)

X(4,1) X(4,2) X(4,3) X(4,4) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

Page 51: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

51

a) Imagen original c) Método matriz de Poisson

b) Transformada del coseno d) Imagen ampliada

Figura 4.49 Ejemplo de zoom por método de la matriz de Poisson con TC

Como apreciamos la calidad de la imagen ampliada en el caso de usar la TC es

mejor aunque aparece con mayor intensidad el color azul, esto es debido principalmente a la

elección de la muestra de la TC, la cual ha sido optimizada para cada una de las

trasformadas utilizadas, por lo tanto si elegimos una muestra distinta para cada tipo de

Transformada mejorara la calidad de la imagen.

Método de la matriz Distribución de Pearson

El fundamento de este método se basa en la obtención de una pequeña muestra de

datos de la TF o TC, según proceda, con el fin de obtener una serie de parámetros

necesarios para el cálculo de una matriz, la cual se define como una distribución Pearson,

caracterizada por los parámetros calculados anteriormente.

Page 52: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

52

Estos parámetros son la media real, la media compleja, la varianza real y la varianza

compleja; hay que hallar dos medias y dos varianzas por tratarse de números complejos,

además se deben introducir dos parámetros o coeficientes como son el coeficiente de

Curtois y el coeficiente de asimetría, en función de estos valores obtendremos diferentes

tipos de distribuciones (la distribución normal o gaussiana se obtiene introduciendo los

valores 3 y 0 respectivamente en estos coeficientes).

Posteriormente y gracias a la función de Matlab pearsrnd (parámetros), se crea la

matriz deseada para el zoom requerido.

Figura 4.50 Obtención de los datos a partir del Transformada

Media real (μ)

Varianza real (σ2)

Media compleja

Varianza compleja

Coef Asimetría

Coef de Curtois

Transformada de Fourier

Una vez realizado lo expuesto anteriormente se procederá de igual forma que en

todos los métodos anteriores, esto es, sustituyendo la TF de la imagen original por la parte

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

X(1,3) X(1,4)

X(2,3) X(2,4)

Page 53: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

53

central de la matriz obtenida a partir de la distribución de Pearson de la muestra tomada de

la TF.

Figura 4.51 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método aplicando los valores de 5 y 100 al coeficiente de asimetría y Curtois

respectivamente

a) Imagen original c) Método matriz Peason

b) Transformada de Fourier d) Imagen ampliada

Figura 4.52 Ejemplo de zoom por método de la matriz de Pearson con TF

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) X(1,1) X(1,2) X(1,3) X(1,4) f(x) f(x)

f(x) f(x) X(2,1) X(2,2) X(2,3) X(2,4) f(x) f(x)

f(x) f(x) X(3,1) X(3,2) X(3,3) X(3,4) f(x) f(x)

f(x) f(x) X(4,1) X(4,2) X(4,3) X(4,4) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

Page 54: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

54

Como podemos observar al amplificar la imagen también se ve afectado el valor

medio, sin embargo, a diferencia de los métodos anteriores, esta variación estará

relacionada con el valor medio de la muestra tomada de la TF.

Transformada del Coseno

Igual que en el caso de la TF para este método, pero sustituyendo la parte superior

izquierda de la matriz, en vez de la central, por la TC.

Figura 4.53 Sustitución de los datos en la matriz final

En la figura siguiente se muestra el resultado de realizar un zoom del 50% con este

método con los mismos coeficientes del caso anterior.

X(1,1) X(1,2) X(1,3) X(1,4)

X(2,1) X(2,2) X(2,3) X(2,4)

X(3,1) X(3,2) X(3,3) X(3,4)

X(4,1) X(4,2) X(4,3) X(4,4)

X(1,1) X(1,2) X(1,3) X(1,4) f(x) f(x) f(x) f(x)

X(2,1) X(2,2) X(2,3) X(2,4) f(x) f(x) f(x) f(x)

X(3,1) X(3,2) X(3,3) X(3,4) f(x) f(x) f(x) f(x)

X(4,1) X(4,2) X(4,3) X(4,4) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

f(x) f(x) f(x) f(x) f(x) f(x) f(x) f(x)

Page 55: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

55

a) Imagen original c) Método matriz de Pearson

b) Transformada del coseno d) Imagen ampliada

Figura 4.54 Ejemplo de zoom por método de la matriz de Pearson con TC

Como apreciamos la calidad de la imagen ampliada es bastante aceptable, esto es

debido principalmente a la elección de la muestra de la TC, si optimizamos el criterio de

elección de la muestra para la TF, por lo tanto si elegimos una muestra distinta para cada

tipo de Transformada mejorara la calidad de la imagen, además se deduce que para esta

distribución y esos coeficientes es bastante recomendable el uso de la TC por delante de la

TF.

4.2 IMPLEMENTACIÓN LAS RUTINAS O MÉTODOS

Diagrama de bloques

El diagrama de bloques a tener en cuenta para el correcto entendimiento de la

estructura de la implementación es el siguiente:

Page 56: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

56

Esquema general de las Funciones y métodos implementados

A continuación se realizará una breve descripción del contenido de cada uno de las

funciones correspondientes a la implementación de los métodos de resolución del zoom, así

como la función encargada de visualizar la imagen en la ventana de nuestra aplicación;

dejando la descripción de las dos GUIs para el apartado 4.3, dedicado a la interfaz gráfica.

Función sol_métodos: función que llama a cada uno de los métodos existentes.

Page 57: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

57

Función Ceros: función que se ocupa de realizar el método de la matriz “todos ceros”

tanto si elegimos la TF o la TC.

Función Constante: módulo que se ocupa de realizar el método de la matriz

constante para TF y TC.

Función Aleatoria: procedimiento que realiza el método de la matriz Aleatoria, tanto

para TF como para TC.

Función Distribución: función en la que se implementa el método de la matriz

“distribución normal”, para los dos casos de transformadas.

Función Distribución de Poisson: función en la que se implementa el método de la

matriz “distribución de Poisson”, para los dos casos de transformadas.

Función Distribución de Pearson: función en la que se implementa el método de la

matriz “distribución de Pearson”, para los dos casos de transformadas.

Función Copia: función llamada cuando se realiza el método de la copia, bien

utilizando la TF o la TC.

Función Reflexión: módulo que contiene el método de la reflexión, para los dos casos

de transformadas posibles.

Función Polar: función que contiene el método polar tanto para la TF como par la TC.

Función pinta_eje: Es independiente del método realizado, esta función se encarga

de adaptar la imagen que queremos mostrar a la ventana de la aplicación.

Función pinta_color: Esta función se encarga de adaptar la imagen a color que

queremos mostrar a la ventanas de visualización de las diferentes componentes de

color ya sea RGB o YCBCR.

Función ocultar_eje: Esta función oculta o visualiza unos ejes u otros e función de

que parte del flujo de programa estemos

Page 58: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

58

Aspectos básicos de la implementación

Para la implementación de las diferentes funciones se ha elegido realizarlas en

código Matlab. Ya que para la realización de todos los métodos se va a trabajar con

matrices, de ahí que nuestra elección sea esta, ya que Matlab permite multitud de

operaciones con matrices, facilitando la comprensión de lo implementado, disminuyendo el

tiempo de procesado y eliminando bucles, talón de Aquiles de este programa. Todas las

funciones han sido implementadas en módulos independientes según el esquema de

procesado adoptado desde el principio en este trabajo fin de grado.

Los formatos de imagen que son soportados por la aplicación son TIF, GIF, PNG,

PCX, XWD, HDF, ICO, PBM, PGM, PPM, BMP, JPG Y RAS.

El programa también permite salvar en todos los formatos vistos antes excepto en

ICO y GIF.

El primer paso para empezar a trabajar con una imagen es abrirla, esto es realizado

por la función uigetfile(), con la que se nos abrirá una ventana donde podremos indicarle la

imagen deseada, la función devuelve un string con la ruta de la imagen seleccionada,

posteriormente con la función imread() se abrirá la imagen cuyo nombre nos fue devuelto por

la función uigetfile(), y se asignarán los datos de esta imagen a una matriz, con la que ya se

podrá trabajar.

Para salvar una imagen se utiliza la función uiputfile(), con la que se indicará el

nombre del archivo en la cual queremos salvar la imagen, y a continuación con la función

imwrite(), se indica el nombre que nos devuelve uiputfile(), y la matriz con los datos de la

imagen que queremos guardar.

También cabe destacar que en algunos casos se hace necesario conservar los

cambios realizados en algunas variables, para que puedan ser utilizadas por otras funciones,

lo que se denomina pasar por referencia una variable, esto se consigue utilizando la

propiedad UserData que tienes los diferentes objetos de las GUI en Matlab, también se

puede conseguir pasar por referencia una variable utilizando variables globales con la

palabra reservada global, aunque esto último es desaconsejable.

Page 59: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

59

4.2.1. FUNCIONES DE IMPLEMENTACIÓN DE LOS

MÉTODOS

Bajo este nombre se incluyen funciones que no pertenecen a la implementación de

las técnicas de zoom, pero que son necesarias para la correcta visualización de las

imágenes a través de la interfaz gráfica.

Función sol _ métodos

Cabecera:

Function

[cadena_hist]=sol_metodos(matrix,dimension,comienzo,comienzo_f,comienzo_c,a,b,cc,d,

metodo,e,f,coef1,coef2

)

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

a: puntero que hace referencia al objeto TF de la interfaz gráfica.

Page 60: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

60

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

cc: puntero que identifica al objeto métodos de la interfaz gráfica.

d: puntero que identifica al objeto aceptar de la GUI principal.

método: guarda un valor entre 0 y 7, según sea el método elegido.

e: puntero que hace referencia al objeto información de la GUI principal.

f: puntero que identifica al objeto edit3 de la interfaz gráfica

coef: puntero que identifica al objeto Coef1 de la interfaz gráfica este se utiliza solo

para el metodo de Pearson

coef2: puntero que identifica al objeto Coef2 de la interfaz gráfica este se utiliza solo

para el metodo de Pearson

Descripción:

Una vez que se recogen todos los parámetros necesarios para la realización del zoom,

esta función se encargará de llamar al método concreto para realizar la totalidad o parte del

zoom que se desee (en caso de ser varios métodos), dicha función nos devolverá una

cadena denominada cadena_hist con información relativa al método seleccionado y el

porcentaje de zoom atribuido a dicho método.

Función Ceros

Cabecera:

Function:

[ceros]=metodo_CEROS(matrix,dimension,comienzo,comienzo_f,comienzo_c,b)

Page 61: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

61

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método Ceros a la opción que haya sido

elegida, esta función utiliza la orden zeros() para crear la matriz resultante y luego

sobrescribe la transformada, esto se realiza en una sola asignación gracias a las

operaciones que permite Matlab con matrices, cobrando especial importancia el operador “:”.

Función Ruido Constante

Cabecera:

Function:

[ceros]=metodo_RUIDO_CONSTANTE(matrix,dimension,comienzo,comienzo_f,comienz

o_c,b)

Parámetros de paso:

Page 62: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

62

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método del ruido Constante a la opción que

haya sido elegida, esta función utiliza la orden ones() para crear la matriz resultante y luego

multiplica un valor aleatorio de la transformada (valor_ruido), por dicha matriz, para finalizar

se sobrescribe la transformada mediante operaciones básicas de asignación de matrices.

Función Ruido Aleatorio

Cabecera:

Function:

[ceros]=metodo_RUIDO_ALEATORIO(matrix,dimension,comienzo,comienzo_f,comienzo

_c,b)

Page 63: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

63

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método del ruido aleatorio a la opción que haya

sido elegida, esta función utiliza la orden rand() para crear la matriz resultante y luego

multiplica un valor aleatorio de la transformada (valor_ruido), por dicha matriz, para finalizar

se sobrescribe la transformada mediante operaciones básicas de asignación de matrices.

Función Distribución Normal

Cabecera:

Function:

[ceros]=metodo_DISTNORM(matrix,dimension,comienzo,comienzo_f,comienzo_c,b)

Parámetros de paso:

Page 64: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

64

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método de la distribución normal, a la opción

que haya sido elegida, esta función utiliza la variable borde para guardar una pequeña

muestra de la transformada, a partir de esta muestra se calcularan su media y varianza real

e imaginaria, gracias a las ordenes mean(real), std(real), mean(img), y std(img), estos

valores se introducirán como parámetros de la función normrnd(), y así se creara la matriz

resultante, para finalizar se sobrescribe la transformada mediante operaciones básicas de

asignación de matrices.

Función Distribución Poisson

Cabecera:

Function:

[Distpoisson]=metodo_DISTPOISSON(matriz,dimension,comienzo,comienzo_f,comienzo

_c,b)

Page 65: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

65

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método de la distribución normal, a la opción

que haya sido elegida, esta función utiliza la variable borde para guardar una pequeña

muestra de la transformada, a partir de esta muestra se calcularan su media real e

imaginaria, gracias a las ordenes mean(real) y mean(img), estos valores se introducirán

como parámetros de la función poissonrnd(), y así se creara la matriz resultante, para

finalizar se sobrescribe la transformada mediante operaciones básicas de asignación de

matrices.

Función Distribución Pearson

Cabecera:

Function:

[Distpear]=metodo_DISTPEAR(matriz,dimension,comienzo,comienzo_f,comienzo_c,b,co

ef1,coef2)

Page 66: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

66

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Coef1:puntero que hace referencia al objeto coef1 de la interfaz gráfica.

Coef2:puntero que hace referencia al objeto coef2 de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método de la distribución normal, a la opción

que haya sido elegida, esta función utiliza la variable borde para guardar una pequeña

muestra de la transformada, a partir de esta muestra se calcularan su media y varianza real

e imaginaria, gracias a las ordenes mean(real), std(real), mean(img), y std(img), estos

valores se introducirán como parámetros de la función pearsrnd(), ademas de coef1 y coef2

los cuales son introducidos por el usuario y así se creara la matriz resultante, para finalizar

se sobrescribe la transformada mediante operaciones básicas de asignación de matrices.

Page 67: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

67

Función Copia

Cabecera:

Function: [ceros]=metodo_COPIA(matrix,dimension,comienzo,comienzo_f,comienzo_c,b)

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método de la copia, a la opción que haya sido

elegida, esta función consiste básicamente en tratamiento de matrices, así pues es ir

asignando partes de la transformada y sobrescribirlas en la matriz resultante de aplicar el

zoom, inicialmente esta matriz se pone a cero con la orden zeros().

Función Reflexión

Cabecera:

Page 68: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

68

Function:

[ceros]=metodo_REFLEXION(matrix,dimension,comienzo,comienzo_f,comienzo_c,b)

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada que elige el usuario, bien

TC o bien TF, para posteriormente aplicar el método de la reflexión, a la opción que haya

sido elegida, esta función consiste básicamente en tratamiento de matrices, así pues es ir

asignando partes de la transformada y sobrescribirlas en la matriz resultante de aplicar el

zoom, inicialmente esta matriz se pone a cero con la orden zeros().

Función Polar

Cabecera:

Function:

[ceros]=metodo_POLAR(matrix,dimension,comienzo,comienzo_f,comienzo_c,b)

Page 69: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

69

Parámetros de paso:

matrix: contiene la matriz resultado del último método realizado hasta este momento,

o bien la matriz de la imagen original si solo se realiza un único método.

dimensión: corresponde a la dimensión de la matriz introducida en el parámetro

anterior.

comienzo: es un vector de dos elementos, en donde aparece el número de filas y

columnas que hemos de añadir con un método determinado.

comienzo_f: indica el número de filas a añadir.

comienzo_c indica el número de columnas a añadir.

b: puntero que hace referencia al objeto TC de la interfaz gráfica.

Descripción:

A través del puntero b se recoge que opción de transformada es seleccionada por el

usuario, bien TC o bien TF, para posteriormente aplicar el método polar a la opción que haya

sido elegida, esta función además de realizar operaciones con matrices, también utiliza las

mismas ordenes que la función distribución normal vista anteriormente, el objetivo de utilizar

estas ordenes es para obtener las esquinas que quedan por asignar de la matriz resultante

de aplicar el zoom a la transformada de la imagen, la manera de obtenerlas es la misma que

con la función susodicha, esto es, obteniendo una muestra de la transformada, de la cual se

obtiene una serie de parámetros que luego son utilizados con la función normrnd().

También se utilizan otras funciones de diversos usos como son zeros(), para inicializar

algunas partes de la matriz antes de reasignarlas con otros valores, o la función diag(), la

cual se utiliza para obtener las diagonales de las esquinas de la matriz resultante.

Page 70: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

70

Función Pinta_eje

Cabecera:

Function

[eje]=pinta_eje(x,y,z,t,Altura,Anchura,dimension,b)

Parámetros de paso:

x: puntero que hace referencia al objeto slider1 de la interfaz gráfica.

y: puntero que hace referencia al objeto slider2 de la interfaz gráfica.

z: puntero que identifica al objeto eje1 de la GUI principal.

t: puntero que identifica al objeto nueva_ventana de la GUI principal.

Altura: sirve para indicar el valor máximo que puede tomar el slider2, depende

directamente de la dimensión de la imagen a mostrar por pantalla

Anchura indica el valor máximo que puede tomar el slider1, solo tendrá importancia

cuan sea mayor que 0 al igual que Altura.

dimensión: puntero que hace referencia al objeto TC de la interfaz gráfica.

b: contiene la matriz de la imagen que se desea pintar por pantalla, ya sea imagen

original, transformada de esta, transformada de una parte de zoom, o del total, etc.

Descripción:

Debido a que Matlab no tiene una función específica para crear barras de

desplazamiento cuando una imagen es mayor que el tamaño de la ventana, se hace

necesario una función que se encargue de adaptar la imagen cuando esta sea mayor o

menor que la ventana.

Page 71: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

71

La valor de t indica si lo que queremos pintar es una imagen normal o la transformada de

esta, o de alguna parte del zoom realizado sobre esta, Altura y Anchura son los valores

máximos que pueden alcanzar las barras de desplazamiento, los cuales cobran sentido

cuando la imagen es mayor que el tamaño fijado para la ventana, las imágenes se pintan en

la ventana a través de la función imshow(),

Especial mención requiere la implementación del caso en el que la imagen sea mas

pequeña que el tamaño de la ventana, la forma de proceder es crear una matriz del mismo

tamaño que la ventana con la función zeros(), para posteriormente sobrescribir la imagen

deseada encima, la función nos devolverá la imagen en la variable eje, para que pueda ser

utilizada por otros objetos de la GUI.

Función Pinta_color

Cabecera:

Function

[eje]=pinta_color(z,t,dimension,b)

Parámetros de paso:

z: puntero que identifica al objeto eje1 de la GUI principal.

t: puntero que identifica al objeto nueva_ventana de la GUI principal.

dimensión: puntero que hace referencia al objeto TC de la interfaz gráfica.

b: contiene la matriz de la imagen que se desea pintar por pantalla, ya sea imagen

original, transformada de esta, transformada de una parte de zoom, o del total, etc.

Descripción:

Page 72: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

72

La valor de t indica si lo que queremos pintar es una imagen normal o la transformada de

esta, o de alguna parte del zoom realizado sobre esta, las imágenes se pintan en la ventana

a través de la función imshow(),

Especial mención requiere la implementación del caso en el que la imagen sea mas

pequeña que el tamaño de la ventana, la forma de proceder es crear una matriz del mismo

tamaño que la ventana con la función zeros(), para posteriormente sobrescribir la imagen

deseada encima, la función nos devolverá la imagen en la variable eje, para que pueda ser

utilizada por otros objetos de la GUI.

Función Ocultar_ejes

Cabecera:

[eje] = ocultar_ejes( matriz,a,b,c,d,f,fs1,fs2)

Parámetros de paso:

matriz: puntero que identifica al objeto TF de la GUI principal.

a: puntero que identifica al objeto ejeoriginal de la GUI principal.

b: puntero que hace referencia al ejerojo de la interfaz gráfica.

c: puntero que hace referencia al ejeverde de la interfaz gráfica.

d: puntero que hace referencia al ejeazul de la interfaz gráfica.

f: puntero que hace referencia al eje1 de la interfaz gráfica.

fs1: puntero que hace referencia al sliderhorizontal de la interfaz gráfica.

fs2: puntero que hace referencia al slidervertical de la interfaz gráfica.

Page 73: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

73

Descripción:

Se encarga de hacer visibles determinados ejes y ocultar otros es llamada al seleccionar

un sistema de representación a color concreto

La función nos devolverá la imagen en la variable ocultar, para que pueda ser utilizada

por otros objetos de la GUI.

Función Act_historico

Cabecera:

Function

act_historico(x,cadena_hist,y)

Parámetros de paso:

x: puntero que hace referencia al objeto slider16 de la interfaz gráfica.

cadena_hist: cadena con información acerca de la acción realizada por el usuario.

y: puntero que identifica al objeto histórico de la GUI principal.

Descripción:

Esta función se encarga de actualizar el histórico cada vez que el usuario ejecuta una

acción, ya sea cargar/salvar una imagen, seleccionar TF o TC, elegir un % de porcentaje de

zoom, etc.

En x se guarda el total de lo que se ha hecho desde que se inició la sesión, mientras que

en y se muestra solo lo que el usuario ha hecho en las últimas acciones, para ver lo

realizado anteriormente se utilizará la barra de desplazamiento.

Page 74: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

74

4.3 DESARROLLO DE UN INTERFAZ GRÁFICO E

IMPLEMENTACION

Matlab cuenta con una herramienta para el diseño de GUI similar a las utilizadas por

otros programas como CBuilder o JBuilder, aunque las posibilidades que ofrece son

menores que las de estos.

Una vez que se diseñan los diferentes objetos que van a formar parte de la GUI, se

genera el código en un archivo llamado nombre_de_la_GUI.m, en este archivo aparecerán

una serie de funciones, las cuales contendrán las acciones a realizar cuando el usuario

interaccione con dicho objeto, los nombres de estas funciones se corresponderán con los

nombres dados a los diferentes elementos que constituyen la GUI, no aparecerán en este

archivo ningún objeto que no haya sido diseñado para interaccionar con el usuario, tales

como statics text o axes.

Entorno de diseño de una GUI de Matlab 7.0

Page 75: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

75

Para comprender mejor la estructura de la GUI diseñada para nuestra aplicación,

podemos ver el siguiente diagrama, donde se muestran los diferentes elementos que forman

parte de la GUI, su jerarquía, de que objetos heredan, etc.

Jerarquía grafica de la GUI de la aplicación

Cada objeto tiene una serie de propiedades, algunas son comunes a todos los

objetos y otras son especificas para un tipo objeto, a continuación se hace una breve

descripción de los elementos que integran cada modulo.

Eje: elemento que sirve de soporte para poder ubicar las imágenes

generadas por nuestra aplicación.

Menú: permite al usuario realizar una serie de acciones básicas, como son

abrir imágenes, salvar imágenes cerrar aplicación, etc, presentan las mismas

propiedades que los controles.

Controles: comprende la mayor parte de los objetos utilizados en la GUI, aquí

nos podemos encontrar:

Pantalla

GUI1

GUI2

Eje

(axes)

Menu

(uimenu)

Controles

(uicontrol) Eje

(axes)

Controles

(uicontrol)

Imagen (image)

Imagen (image)

Page 76: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

76

Botones: para realizar selecciones de TF o TC, o para mostrar una imagen

determinada.

Menú desplegable: para elegir entre los distintos métodos disponibles para

la realización del zoom.

cajas de texto editables: para introducir los parámetros para procesar el

zoom.

cajas de texto estáticas, para mostrar alguna información interesante al

usuario,

barras de desplazamiento: para poder ir desplazándose a lo largo de un

string o una imagen.

Algunas de las propiedades de estos objetos que se utilizan en la GUI son:

Position: utilizada para indicar la posición del objeto, esta propiedad es

utilizada en el eje, para indicarle su posición y dimensiones.

String: indica el nombre con el que aparece el objeto al ejecutar la GUI, esta

propiedad se usa sobre todo en las cajas de textos, tanto las estáticas como las

editables.

Enable: sirve para habilitar o deshabilitar el objeto en el que se utiliza.

Max: indica el valor máximo que puede tomar el objeto, esta propiedad es

muy importante cuando trabajamos con las barras de desplazamiento.

Min: va de la mano de la anterior, indica el valor mínimo, en nuestra GUI los

valores de la barra de desplazamiento serán positivos por lo tanto Min valdrá

siempre 0

Page 77: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

77

SliderStep: sirve para indicar el incremento de la barra de desplazamiento

cada vez que le damos hacia un lado u otro.

Value: indica el valor que toma la propiedad, en el caso del menú desplegable

en la propiedad Value se almacenará un número entre 1 y 7, según sea el

método elegido, en el caso de las barras de desplazamiento esta propiedad

tendrá un valor comprendido entre 0 y Max .

UserData: anteriormente se ha explicado la utilidad de esta propiedad, como

una herramienta para pasar parámetros de unos módulos del programa a otros.

Units: establece la unidad que se va a considerar de referencia, en nuestro

caso será pixels.

Para poder obtener el valor de una propiedad determinada para un objeto dado, se

utiliza la función get(), mientras que para modificar alguna propiedad se usa la orden set(),

en ambos casos hay que identificar al objeto en cuestión (a través de un identificador o

handles), así como indicar la propiedad con la que se desea trabajar.

El aspecto que presentará la aplicación es el siguiente:

Page 78: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

78

Page 79: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

79

5. RESULTADOS

A partir de los métodos desarrollados en los puntos anteriores, el presente apartado

se centrará en mostrar y describir el comportamiento de los mismos ante diversas

situaciones; permitiendo en algunos casos establecer una comparativa entre métodos del

mismo tipo.

En el apartado 4.1 se vio el comportamiento de cada método ante la realización de un

zoom del 50%, las conclusiones que se sacan de este experimento contemplan la pérdida

generalizada de valor medio que experimentan todos los métodos, así como la imposibilidad

de realizar zooms relativamente grandes con los métodos de reflexión y copia.

A lo largo de este apartado se verán los diferentes resultados que se obtienen de

aplicar un zoom del 100% con diferentes combinaciones de métodos, para no extendernos

mucho todos los experimentos se harán con la TF, dejamos a elección del usuario realizar

las mismas pruebas con la TC

Métodos Aleatorio-Constante-Ceros

En primer lugar se hará un reparto equitativo del zoom entre los diferentes métodos,

así pues los porcentajes serán del 33% para el método aleatorio, 33% el constante y 34% el

ceros, posteriormente se realizara el mismo zoom pero con los tres métodos por separado,

de esta forma se verá con que método se obtiene mejor rendimiento y con cual peor.

Page 80: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

80

a) Imagen con tres métodos b) Imagen con método Ceros

c) Imagen con método Constante d) Imagen con método Aleatorio

Figura 5.1 Zoom del 100% con TF para los métodos Aleatorio-Constante-Ceros

Se ve como el causante del oscurecimiento que experimenta la imagen es el método

Aleatorio.

Métodos Constante-Ceros-Distribución Normal

En este caso se harán tres simulaciones, dándole en cada una de ellas mayor

importancia a un método diferente, así en la primera simulación el reparto será; distribución

50%, constante 25% y Ceros 25%, y en las sucesivas se dará mayor importancia al método

constante y al ceros respectivamente.

Page 81: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

81

a) Imagen con 50% de Distribución b) Imagen con 50% Constante

c) Imagen 50% de Ceros d) Imagen solo con Distribución

Figura 5.2 Zoom del 100% con TF para los métodos Constante-Ceros-Distribución

Como se puede ver cuando el método predominante es el Constante es cuando peor

resultados se obtienen, aunque sin llegar a los obtenidos con el método aleatorio.

Métodos Ceros-Distribución Normal-Copia

Al igual que antes haremos tres simulaciones, dándole en cada una de ellas mayor

importancia a distintos métodos; con el objetivo de obtener un mejor rendimiento se realizara

en primer lugar el método de la copia, seguido del método distribución, y por último el ceros,

los porcentajes serán 50, 25 y 25 % respectivamente.

Page 82: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

82

a) Imagen 50% Copia b) Imagen 50% Distribución

c) Imagen 50% Ceros d) Imagen solo con Copia

Figura 5.3 Zoom del 100% con TF para los métodos Ceros-Distribución-Copia

En este caso se obtienen mejores resultados que en los casos anteriores sin

embargo se aprecia como el método copia es bastante ineficiente cuando se utiliza para

hacer zooms relativamente altos.

Métodos Distribución Normal-Copia-Reflexión

Page 83: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

83

El orden de los métodos en este caso será primero el de la reflexión luego el de la

copia y por último el de la distribución, el zoom se repartirá de la misma forma que en los

casos anteriores

a) Imagen 50% Reflexión b) Imagen 50% Copia

c) Imagen 50% Distribución d) Imagen solo con Reflexión

Figura 5.4 Zoom del 100% con TF para los métodos Distribución-Copia-Reflexión

Como se aprecia, el mejor resultado se consigue cuando al método de la reflexión y

al de la copia se le asignan porcentajes pequeños, lo cual unido al hecho de que, en el

experimento anterior los mejores resultados se han conseguido cuando el método ceros no

era predominante, nos hace pensar que estos dos métodos, reflexión y copia, obtienen

mejores resultados si realizan pequeños porcentajes del zoom y además son los primeros en

utilizarse.

Page 84: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

84

Métodos Copia-Reflexión-Polar

No es normal ver esta combinación de métodos, ya que no se suelen utilizar juntos el

método copia y reflexión, y además el método polar se suele utilizar cuando la transformada

presenta características polares, no obstante es interesante ver el resultado que se obtiene

al realizar este zoom.

El orden para este caso será, primero el método polar, después el de la copia y por

último el de la reflexión, los porcentajes serán los mismos que en los casos anteriores.

a) Imagen 50% Polar b) Imagen 50% Copia

c) Imagen 50% Reflexión d) Imagen solo con Polar

Figura 5.5 Zoom del 100% con TF para los métodos Copia-Reflexión-Polar

Se aprecia como el método polar introduce una distorsión en forma de aspa, la cual

es mayor a medida que el porcentaje de zoom realizado con este método es mayor, la

conclusión que se puede sacar es que no es bueno mezclar estos métodos para realizar un

mismo zoom.

Page 85: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

85

De todo lo visto en este apartado se pueden sacar las siguientes conclusiones:

Los métodos implementados se pueden organizar en dos grupos, un primer grupo en

el que meteríamos el de la copia , reflexión y el polar, dicho grupo se caracterizaría por ser

bastante eficiente a la hora de realizar valores pequeños de zoom, y se usarían en primer

lugar, el elegir uno u otro método dependerá también de las características de la propia

imagen; y un segundo grupo en donde se englobarían el resto de métodos, los cuales se

caracterizan por aumentar su eficiencia a medida que se aumenta el valor el porcentaje de

zoom que tienen que realizar, estos métodos se utilizarían en último lugar.

Haciendo un estudio más exhaustivo se podrían determinar rangos o intervalos de

valores de zoom para cada método, de manera que se aumente su eficiencia, así por

ejemplo para los métodos pertenecientes al primer grupo lo ideal podría ser, que dichos

métodos no se pudieran utilizar con zooms superiores al 50%, y para valores superiores que

solo pudiera realizar 1/5 parte del total, además tendrían que ser el primer o segundo

método utilizado como; del mismo modo los métodos pertenecientes al segundo grupo, se

utilizarían para realizar zooms superiores al 100%, y si solo realizan una parte del zoom que

esta fuera como mínimo 1/3 del total, además de que se utilizarían para realizar los últimos

porcentajes del zoom.

Page 86: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

86

6. CONCLUSIONES

Desde un punto de vista práctico, el empleo del lenguaje de programación Matlab

7.14, no ha ofrecido demasiadas alternativas siendo muy limitado el desarrollo de un entorno

gráfico, no obstante se ha conseguido implantar una interfaz sencilla y fácil de manejar, que

permite realizar los objetivos que perseguía el trabajo fin de grado.

Partiendo de un modelo estructurado, se ha conseguido emular, a través de la

implementación de métodos y funciones, el funcionamiento de siete técnicas diferentes de

realización de zoom con imágenes en escala de grises, destacando las características de

cada uno de estos métodos. En este sentido, merece mención especial la facilidad que

ofrece Matlab a la hora de tratar las imágenes como matrices, lo cual favorece el tratamiento

de las mismas, ya no solo para la realización del zoom propiamente dicho, sino también para

tareas más generales y que en otros lenguajes se harían tediosas.

Además se han utilizados dos herramientas diferentes como son la Transformada de

Fourier y la Transformada del Coseno, para la realización de cada método, optimizando la

implementación de los mismos en función de la selección de transformada elegida, con el

objetivo de obtener un mejor rendimiento.

También se ha conseguido aplicar todas estas técnicas a imágenes a color tanto para

sistemas de imágenes basados en RG como en YCBCR.

Se ha permitido combinar estas técnicas para obtener un mejor resultado en el zoom

de la imagen, a esto hay que añadir algunas técnicas adicionales implementadas para

mejorar la eficiencia de los métodos, se ha añadido un mecanismo de valoración de métodos

basado en la envolvente de la Trasformada, para así determinar que método es más óptimo

para una imagen.

Page 87: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

87

7. LÍNEAS DE FUTURO En primer lugar podríamos hablar de las posibles mejoras relativas al aspecto del

programa, así como las acciones básicas que este puede realizar; de este modo se podría

decir que utilizando un lenguaje de programación como C++ Builder, se podría realizar un

entorno gráfico más desarrollado, con más opciones y hacerlo más comprensible de cara al

usuario, gracias al uso de iconos, ayudas interactivas para cada opción, uso de piles

personalizadas, etc.

Se podría añadir un menú editable que permitiera copiar, pegar, cortar, las imágenes

que se va mostrando la aplicación.

Se podría hacer accesible la aplicación desde Internet, podríamos crear un .jsp o un

.php con el código del programa y poder acceder a él desde cualquier punto de la red, la

herramienta Matlabserver permite compilar el código de Matlab a código java, a partir de

aquí el resto es fácil, el verdadero reto seria como usar esta herramienta de Matlab parar

conseguir nuestros objetivos.

En lo referente a las mejoras que se pueden realizar a las técnicas de zoom

implementadas, además de la evidente de añadir nuevas técnicas, se podrían implementar

módulos, que aplicados a algunos métodos mejoraran el rendimiento de estos.

Page 88: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

88

8. BIBLIOGRAFÍA

[1] Patrick Marchand, “Graphics and GUIs with Matlab”, CRC, 1999, Second edition.

[2] William k. Pratt, “Digital Image Processing” (3rd Edition), John Wiley & Sons, Inc.,

2001.

[3] Rafael C. Gonzalez y Richard E. Woods, “Matlab edición de estudiante”, PRETINCE

HALL, 1996.

[4] Javier Atienza y Raúl Nestar, “Aprenda Matlab como si estuviera en primero”, Tecnum,

2001.

[5] Antonio Mosquera González. Bloques Temáticos de la Docencia de Tratamiento

Computacional de Imágenes

[6] Tutorial de Matlab,

http://www.mathworks.com/academia/student_center/tutorials/launchpad.html.

[7] Introducción al Procesado de Imagen,

http://wgpi.tsc.uvigo.es/libro/procesim/procesim.htm

Page 89: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

89

9. ANEXOS

9.1 Manual de Usuario 9.1.1 Requerimientos Mínimos

Ordenador compatible que conste de:

CPU Intel Pentium (1’4 GHz en adelante).

Espacio libre en disco duro de 40 MB.

Memoria RAM de 256 MB.

Resolución de pantalla mínima: 1024 x 768 píxeles.

Sistema Operativo Microsoft Windows XP.

9.1.2 Instalación

Para la instalación del programa, se ejecutará el archivo “Setup.exe” contenido en el

CD que acompaña al trabajo fin de grado. Lo primero que hay que indicar es el idioma a

utilizar en la instalación:

Después, se mostrará la siguiente pantalla:

Page 90: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

90

El proceso de instalación se podrá cancelar en cualquier momento, para ello sólo se

tendrá que pulsar Cancelar, se pedirá una confirmación y se indicará que el proceso de

instalación podrá ejecutarse de nuevo para completarla.

Se pulsará Siguiente y se seleccionará la carpeta destino de la aplicación, por defecto

esta carpeta se encuentra en:

“C:\Archivos de Programa\Zoom2014”:

Page 91: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

91

Después se pulsará siguiente y se seleccionarán los componentes que se desean

instalar. Se distinguirán 2 tipos de instalación:

Instalación Completa: Incluye el programa principal y su ayuda.

Instalación Personalizada: Mediante esta opción se seleccionará manualmente los

componentes que se deseen instalar.

Page 92: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

92

.

El próximo paso será indicar la carpeta del Menú de Inicio donde se crearán los

iconos del programa.

Page 93: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

93

Antes de realizar la instalación se mostrará un resumen de las opciones

seleccionadas en la instalación, de tal forma que puedan confirmarse las elecciones, y en el

caso de no estar de acuerdo se podrán dar pasos Atrás hasta conseguir la instalación

deseada

.

Una vez pulsado instalar aparecerá una barra de progreso indicando el proceso de

instalación. Cuando este proceso haya acabado se dará la opción de ejecutar

automáticamente el programa y aparecerá la siguiente pantalla indicando el fin de la

instalación.

Page 94: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

94

9.1.3 Acerca del Área de Trabajo

Al diseñar la aplicación se ha pretendido simplificar los elementos parar una mayor

comprensión por parte del usuario, sin que ello altere las prestaciones del programa.

Para que la aplicación funcione correctamente, debe ejecutarse a una resolución de

1024 x 768 píxeles (como se indicó en los requerimientos mínimos). La aplicación tiene el

siguiente aspecto:

Page 95: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

95

Se puede observar en la imagen los distintos componentes que lo forman:

Menú.

Botones.

Cajas de texto.

Ventana de visualización.

Acerca del Menú

Menú Archivo

Desde este menú se podrá acceder a las opciones básicas de archivo, tales como:

Page 96: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

96

Abrir: Realiza la apertura de distintos tipos de archivos soportados por la aplicación. Para ello, se hará

uso de un cuadro de dialogo, que mostrará todos los archivos.

Salvar: Salva la imagen la imagen que se encuentra en la ventana principal del

programa y la sobrescribe encima de la que fue salvada anteriormente.

Salvar como: Permite salvar la imagen que se encuentra en la ventana principal,

para ello, se hará uso de un cuadro de dialogo, que mostrará todos los archivos en los que

es posible grabar la imagen.

Page 97: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

97

Salir: Cierra la ventana activa, ya sea una imagen o un histograma, una vez pulsada,

pedirá una confirmación al usuario.

Menú de Ayuda (?):

Ayuda: Esta opción permitirá abrir el archivo de ayuda en tiempo de ejecución, que

informará sobre el uso del programa.

Page 98: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

98

Acerca de…: Esta opción informa en una ventana nueva acerca de la realización del

programa: autores, etc.

Page 99: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

99

Acerca de los botones

Nuestra aplicación está formada por los siguientes botones:

TF: selecciona la Transformada de Fourier como herramienta.

TC: selecciona la Transformada del Coseno como herramienta.

Mostrar imagen: muestra en términos de la Transformada seleccionada, como se va

construyendo el zoom, a partir de los métodos elegidos y sus porcentajes asociados.

Deshacer: permite introducir otra vez los parámetros para realizar el zoom.

Aceptar: una vez que se termina de realizar todas las operaciones se pulsa aceptar

para finalizar el proceso y habilitar las opciones de visionado.

Mostrar Imagen Ampliada: muestra en pantalla la imagen original pero ya ampliada.

Mostrar Transf. Ampliada: hace lo mismo que la anterior, pero expresado en

términos de la Transformada que se seleccionó para realizar el zoom

Mostrar Imagen en nueva ventana: muestra lo que haya en la ventana principal en

otra nueva ventana.

Page 100: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

100

Acerca de las cajas de texto

Introducir Zoom: aquí se especifica cuanto queremos ampliar la imagen

Métodos disponibles: en este lugar se indicara el método elegido para realizar el

zoom.

Coeficientes de distribución de Pearson: Aquí se deben de introducir los

parámetros de Coeficiente de Asimetría y de Curtois

Porcentaje de Zoom del método: este valor es introducido después de seleccionar

el método, e indica el porcentaje de zoom realizado por dicho método.

Histórico: Es una caja donde se informa de todas las acciones realizadas desde el

inicio de la sesión.

Page 101: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

101

Ayuda: en esta caja se intenta aportar una ayuda al usuario, acerca de los pasos a

seguir, para la correcta utilización del programa.

Valor max de porcentaje de Zoom: aquí se informa al usuario de cuanto resta en %,

para completar el zoom, esto es solo para informar al usuario, si este introdujera un valor

mayor que el reflejado aquí, aparecería una ventana de advertencia, con el valor máximo

que se puede introducir.

Acerca de las ventanas de visualización

En función de la imagen a color seleccionada para hacer zoom aparecerán una serie

de ejes u otros, así tendremos.

Page 102: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

102

Aquí se muestran las tres imágenes de los colores básicos así como la imagen de la

foto original.

En el caso de YCBCR tendríamos:

Page 103: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

103

La visualización de los resultados finales se hará en el eje principal de la interfaz, y se

mostraran las diferentes capas juntas.

Page 104: de Linares - tauja.ujaen.estauja.ujaen.es/bitstream/10953.1/1816/1/TFG-García... · implementación o utilización de filtros de procesamiento, apoyándose en lenguajes de programación

FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados

104