You are on page 1of 9

Manual de Calimn

1 DESCRIPCIN DE LA CALculadora de IMgeNes (CALIMN) Este programa es un auxiliar para la enseanza de materias relacionadas con procesamiento de seales, y en particular, con procesamiento de imgenes. Puede servirle tanto a los maestros, para la elaboracin de presentaciones y notas de clase (usando, por ejemplo, PowerPoint) como para los estudiantes, tanto para la realizacin de tareas como el aprendizaje autodidacta. Su uso es similar al de una calculadora cientfica (o ms bien, al de un conjunto de calculadoras). El programa cuenta con 12 memorias en las cuales pueden almacenarse otras tantas imgenes monocromticas (en tonos de gris). El tamao de estas imgenes es, por defecto, de 128 X 128 pixeles, pero puede manejar imgenes de cualquier tamao, limitado solamente por la capacidad de la mquina donde corra. La configuracin mnima necesaria para su uso es: PC con procesador 486 o Pentium (de preferencia). 16Mb de RAM Sistema operativo Windows 95 o Windows 98.

2 USO DE CALIMN Su operacin es muy sencilla: al activarse el programa, aparecen las memorias que quepan en la pantalla, vacas, con barras para poder recorrerlas hacia arriba o hacia abajo. Para cargar una imagen en una memoria, simplemente haga click con el ratn en la memoria correspondiente; al hacerlo, aparecer un men, donde debe seleccionarse leer imagen. Al hacerlo, aparecer una caja de dilogo que permitir seleccionar una de las imgenes que se incluyen en el paquete (u otras que el usuario tenga), en formato .bmp (en el futuro se incluirn filtros para leer otros formatos). El programa provee tambin algunas herramientas para generar cierto tipo de imgenes. Para accesarlas, seleccione Generar de la barra superior. Para llamar a las calculadoras, seleccione Procesar de la barra superior o del men que aparece al hacer click en alguna memoria. La operacin de estas calculadoras es bastante intuitiva: por ejemplo, la calculadora aritmtica aparece como se ilustra en la Fig. 1. Para sumar, digamos, las imgenes contenidas en las memorias 1 y 2, y guardar el resultado en la memoria 3, se oprime el botn + y en la caja de dilogo que aparece se especifican los nmeros de las memorias correspondientes, como se ilustra en la Fig. 2. Al pie de cada una de las imgenes guardadas en las memorias aparece su rango dinmico entre corchetes [ ], es decir, los valores mximo y mnimo de la intensidad.

Fig. 1

Fig. 2 Calimn cuenta, en esta primera versin, con 6 calculadoras: 1) Aritmtica (suma, resta, multiplicacin y divisin entre imgenes y entre imgenes y constantes; funciones trigonomtricas; potencias; desplazamientos (shifts) circulares y no-circulares) 2) Derivadas (diversas implemetaciones de operadores de diferencias que aproximan derivadas; derivadas implementadas como convoluciones ---circulares y nocirculares--- con kerneles obtenidos como derivadas de funciones Gaussianas) 3) Convolucin (convoluciones con kerneles de suavizamiento: Gaussianos, binomiales y de caja; convolucin y correlacin cruzada con kerneles arbitrarios)

4) Transformadas (transformada rpida de Fourier directa e inversa; transformada de Hilbert (clculo de la imagen analtica)) 5) Generar (impulsos, rampas, rectngulos, ruido (Gaussiano y uniforme), imgenes con unos y ceros) 6) Miscelneas (reflejo en x e y; obtencin de subimgenes; cruces por cero; limpiar memorias) Es posible adems, haciendo click en una memoria, graficar un rengln o columna arbitrarios, guardar una imagen como archivo .bmp o copiar una imagen al clipboard para transferirla a otro programa como Word, Powerpoint, Corel Photopaint, etc. Todas estas funciones hacen que este programa sea una herramienta muy efectiva para preparar presentaciones y notas de clase. Pensamos incluir adems un libro de ejercicios para los estudiantes. A continuacin presentamos un ejemplo detallado de su uso para resolver algunos ejercicios de procesamiento de imgenes. Ejercicio 1: Mostrar el efecto de aadir ruido Gaussiano a una imagen. La solucin, paso a paso, es como sigue: 1) Cargue la imagen bola.bmp en la memoria 1. 2) De la calculadora Genera seleccione Ruido Gaussiano y crguelo en la memoria 2. 3) Usando la calculadora aritmtica, multiplique la imagen 2 por 100.0 (botn *a) y guarde el resultado en la misma imagen 2. 4) Usando la calculadora aritmtica, sume las imgenes 1 y 2, guardando el resultado en la imagen 3. Al terminar, la calculadora debe verse como en la Fig. 3:

Fig. 3

Fig. 4 Ejercicio 2: Mostrar que el ruido puede atenuarse aplicando un operador de suavizamiento (en particular, convolucionando la imagen ruidosa con un kernel cuya forma est dada por una Gaussiana en 2 dimensiones, con parmetro sigma = 3). Solucin: 5) Usando la calculadora Convolucin, seleccione, dentro de los botones etiquetados como no circulares el botn Gaussiana y especifique la imagen 3 como entrada, la imagen 4 como salida, y una sigma de 3. Al terminar, la pantalla debe verse como en la Fig. 4. Ejercicio 3: Mostrar que la convolucin con un kernel Gaussiano es una operacin lineal. Para hacerlo, mostraremos que aplicar este operador a la suma de 2 imgenes da el mismo resultado que aplicarlo a cada uno de los sumandos por separado y sumar despus los resultados. En particular, suavizaremos la imagen 1 (bola.bmp) y la imagen 2 (ruido Gaussiano) y mostraremos que la suma de estas 2 imgenes suavizadas es igual a la imagen 4. Los pasos detallados son: 6) Aplique el mismo operador (Convolucin Gaussiana con sigma = 3) a: la imagen 1, guardando el resultado en la imagen 5, y a la imagen 2, guardando el resultado en la imagen 6. 7) Sume las imgenes 5 y 6, guardando el resultado en la imagen 7. Como puede verse, este resultado es prcticamente idntico a la imagen 4. Para verificar esta identidad,

Fig. 5

8) Reste (botn de la calculadora aritmtica) las imgenes 4 y 7, guardando el resultado en la imagen 8. Como puede apreciarse, esta imagen contiene slo errores numricos. Al terminar, la pantalla debe verse como en la Fig. 5.

3 OPERADORES DE CALIMN BOTONES ARITMTICOS


+a -a *a /a a/ + * / Sumatoria Producto Sen Cos Tan Asen Acos Atan2 Mag Exp Log Pow ^2 Sqrt Abs Umbral Norma1 Norma2 Ren-Col Min-Max Media Des. Std Varianza Shift ShiftC Suma a una imagen un escalar (flotante). Resta a una imagen un escalar. Multiplica una imagen por un escalar. Divide una imagen en el escalar (flotante) . Si a= o , entonces hace a=1. Divide un escalar (flotante) en una imagen. Si un pixel = o , entonces supone ese pixel=1. Suma dos imgenes. Resta dos imgenes. Multiplica dos imgenes Divide dos imgenes. En caso de divisin por cero de en el pixel correspondiente da como resultado cero. Regresa el escalar correspondiente a la suma de todos los pixeles de la imagen. Regresa el escalar correspondiente al producto de todos los pixeles de la imagen. Calcula la imagen correspondiente al seno de cada pixel de otra imagen. Calcula la imagen correspondiente al coseno de cada pixel de otra imagen. Calcula la imagen correspondiente a la tangente de cada pixel de otra imagen. Calcula la imagen correspondiente al arco-seno de cada pixel de otra imagen. Calcula la imagen correspondiente al arco-coseno de cada pixel de otra imagen. Calcula la imagen correspondiente al arco-tangente para cada par de pixeles en las imgenes (x, y). atan2(y,x) Calcula la imagen correspondiente la magnitud para cada par de pixeles en las imgenes (x, y). sqrt(x^2 + y^2). Calcula la imagen correspondiente la exp(F(X(i, j))). Calcula la imagen correspondiente la log(F(X(i, j))). Donde F(X) realiza un mapeo lineal de la imagen X(i,j) a intervalo [1, max(X)]. Calcula la imagen correspondiente a X(i,j)^n. Calcula la imagen correspondiente a X(i,j)^2. Calcula la imagen correspondiente a X(i,j)^0.5. Calcula la imagen correspondiente a Abs(X(i,j)). Calcula la imagen correspondiente a <<if(X(i, j) > Bajo && X(i, j)<Alto) X(i, j) = 1; else X(i, j) = 0;>> donde Bajo y Alto son dos escalares o porcentajes del rango dinmico. Regresa el escalar correspondiente al promedio del valor absoluto de la imagen Sum(Abs(X))/N. Regresa el escalar correspondiente al promedio del valor cuadrado de la imagen Sum(X^2)/N. Regresa las dimensiones de la imagen [Renglones, Columnas] Regresa los valores menor y mayor de la imagen [min(X), max(X)] Regresa el escalar correspondiente al promedio de la imagen Sum(X)/N. Regresa el escalar correspondiente a la desviacin estndar de los valores de los pixeles de la imagen, Sqrt(Sum((X-Media(X))^2)/N). Regresa el escalar correspondiente a la varianza de los valores de los pixeles de la imagen, Sum((X-Media(X))^2))/N. Realiza un corrimiento del centro de la imagen (0,0) a la posicin dada (R,C). El valor de los pixeles que rellenados ser cero. Realiza un corrimiento circular del centro de la imagen (0,0) a la posicin dada (R,C).

BOTONES DERIVADAS
DIFERENCIAS Dx Dy Dx For Dy For Dx Cen Dy Cen GUSSIANAS Dx Gauss Dy Gauss Mag Gauss Dx2 Gauss Dy2 Gauss Dxy Gauss Calcula las primeras diferencias atrasadas en la direccin horizontal. X(i, j) X(i-1, j). Calcula las primeras diferencias atrasadas en la direccin vertical. X(i, j) X(i, j-1). Calcula las primeras diferencias adelantadas en la direccin horizontal. X(i+1, j) X(i, j). Calcula las primeras diferencias adelantadas en la direccin vertical. X(i, j+1) X(i, j). Calcula las primeras diferencias centrales en la direccin horizontal. X(i+1, j) X(i-1, j). Calcula las primeras diferencias centrales en la direccin vertical. X(i, j+1) X(i, j-1). Calcula la derivada gaussiana en la direccin horizontal. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Calcula la derivada gaussiana en la direccin vertical. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Calcula la magnitud las derivadas gaussianas de primer orden. Calcula la segunda derivada gaussianas en la direccin horizontal. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Calcula las segunda derivada gaussiana en la direccin vertical. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Calcula la segunda derivada gaussianas cruzada. Primera derivada en la direccin horizontal y al resultado le calcula la primera en la vertical. Los Kernel de convolucin se calculan a partir de la derivada analtica de una gaussiana de ancho controlado por sigma.

GAUSS. CIRCULARES Dx Gauss Calcula la derivada gaussianas circular en la direccin horizontal. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Dy Gauss Calcula la derivadas gaussianas circular en la direccin vertical. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Mag Gauss Calcula la magnitud las derivadas gaussianas circulares de primer orden. Dx2 Gauss Calcula la segunda derivada gaussianas circular en la direccin horizontal. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Dy2 Gauss Calcula las segunda derivada gaussiana circular en la direccin vertical. El Kernel de convolucin se calcula a partir de la derivada analtica de una gaussiana de ancho controlado por sigma. Dxy Gauss Calcula la segunda derivada gaussianas cruzada circular. Pimera derivada en la direccin horizontal y al resultado le calcula la primera en la vertical. Los Kernel de convolucin se calculan a partir de la derivada analtica de una gaussiana de ancho controlado por sigma.

BOTONES CONVOLUCIN
NO CIRCULARES Caja Calcula la convolucin no circular de la imagen de inters y un kernel de caja cuadrado de dimensiones nxn. Binomial Calcula la convolucin no circular de la imagen de inters y un kernel de binomial cuadrado de dimensiones nxn.

Gaussiana Conv[7,7] Convolucin

X Correlac.

Calcula la convolucin no circular de la imagen de inters y un kernel de gaussiano cuadrado cuyas dimensiones se controlan con sigma. Calcula la convolucin no circular de la imagen de inters y un kernel LIBRE cuadrado de dimensiones 7x7. Incluye una herramienta para editar el kernel de convolucin. Calcula la convolucin no circular entre dos imgenes X, Y. Una de las imgenes debe ser de menores dimensiones (menos renglones y menos columnas); esa imagen es asumida como kernel de convolucin. El resultado es una imagen de las dimensiones de la imagen ms grande. Calcula la correlacin cruzada no circular entre dos imgenes X, Y. Una de las imgenes debe ser de menores dimensiones (menos renglones y menos columnas); esa imagen es asumida como kernel de correlacin. El resultado es una imagen de las dimensiones de la imagen ms grande.

CIRCULARES Caja Calcula la convolucin circular de la imagen de inters y un kernel de caja cuadrado de dimensiones nxn. Binomial Calcula la convolucin circular de la imagen de inters y un kernel de binomial cuadrado de dimensiones nxn. Gaussiana Calcula la convolucin circular de la imagen de inters y un kernel gaussiano cuadrado cuyas dimensiones se controlan con sigma. Conv[7,7] Calcula la convolucin circular de la imagen de inters y un kernel LIBRE cuadrado de dimensiones 7x7. Incluye una herramienta para editar el kernel de convolucin. Convolucin Calcula la convolucin no circular entre dos imgenes X, Y. Una de las imgenes debe ser de menores dimensiones (menos renglones y menos columnas); esa imagen es asumida como kernel de convolucin. El resultado es una imagen de las dimensiones de la imagen ms grande. X Correlac. Calcula la correlacin cruzada circular entre dos imgenes X, Y. Una de las imgenes debe ser de menores dimensiones (menos renglones y menos columnas); esa imagen es asumida como kernel de correlacin. El resultado es una imagen de las dimensiones de la imagen ms grande.

BOTONES TRANSFORMADAS
FFT Calcula la transformada rpida de Fourier (FFT) de un par de imgenes que pueden estar en formato Real-Imaginaria o Magnitud-Fase, el resultado puede seleccionarse en cualquiera de estos dos formatos. Para indicar que una imagen es totalmente cero por (ejemplo la parte imaginaria es cero) puede ponerse un cero en el parmetro correspondiente. Este algoritmo de FFT opera nicamente con imgenes cuyas dimensiones son potencias de dos (ejemplo: 128x128, 256x32, 256x1024) Calcula una funcin analtica (transformada rpida de Hilbret) de una imagen el resultado esta en formato Real-Imaginaria. Este algoritmo usa la FFT por lo que opera nicamente con imgenes cuyas dimensiones son potencias de dos (ejemplo: 128x128, 256x32, 256x1024)

Analtica

BOTONES GENERAR
Impulso Unos Ceros Rectngulo Rampa X Genera una imagen de ceros de dimensin arbitraria con un uno (impulso o delta de Kroneker) en el pixel central. Genera una imagen de unos de dimensin arbitraria. Genera una imagen de ceros de dimensin arbitraria. Genera una imagen de ceros de dimensin arbitraria con un rectngulo de unos en dimensiones y en posicin arbitraria. Genera una imagen donde la altura de cada columna es igual al si ndice. Inicia en cero.

Rampa X RUIDO Gaussiano Uniforme

Genera una imagen donde la altura de cada rengln igual al si ndice. Inicia en cero. Genera una imagen aleatoria donde el valor de cada pixel es igual a una muestra de ruido gaussiano con media igual a cero y varianza igual a 1. Genera una imagen aleatoria donde el valor de cada pixel es igual a una muestra de ruido uniformemente distribuido en el intervalo [0,1].

BOTONES MISCELANEOS
SubImagen Cruce x 0 Limpiar Refleja X Refleja Y Permite copiar un segmento de imagen en otra. Calcula los cruces por cero en una imagen. Permite borrar el contenido de algn(os) registro. Realiza reflexin de una imagen el rededor de su columna central. Realiza reflexin de una imagen el rededor de su rengln central.

You might also like