Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
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
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
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.
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
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.
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.
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.
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
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
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
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.
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
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
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”.
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
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.
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)
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
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)
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
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
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.
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)
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.
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)
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)
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)
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.
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.
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)
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)
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.
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)
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.
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)
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)
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
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)
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.
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)
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)
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)
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.
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)
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%
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.
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)
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)
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)
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.
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)
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)
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)
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:
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.
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
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.
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.
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)
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:
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)
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:
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)
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)
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.
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:
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)
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.
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.
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:
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.
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.
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
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)
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
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:
FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados
78
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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:
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”:
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.
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.
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.
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:
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:
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.
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.
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.
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.
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.
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.
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:
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.
FRANCISCO JAVIER GARCÍA NIETO Desarrollo de herramienta de zoom digital en dominios transformados
104