t e s i s - centro nacional de investigación y desarrollo ... pablo rocha... · “desarrollo de...

129
SEP SES DGEST CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO cenidet “Desarrollo de Algoritmos de Procesamiento Digital de Señales para la Reconstrucción de Imágenes Usando Biespectro” T E S I S QUE PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN INGENIERÍA ELECTRÓNICA P R E S E N T A: ING. PABLO ROCHA REALI DIRECTOR DE TESIS: DR. MARCO ANTONIO OLIVER SALAZAR CUERNAVACA, MORELOS MAYO DE 2005

Upload: dinhnhi

Post on 29-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

SEP SES DGEST

CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO

cenidet

“Desarrollo de Algoritmos de Procesamiento Digital de Señales para la Reconstrucción de

Imágenes Usando Biespectro”

T E S I S QUE PARA OBTENER EL GRADO DE

MAESTRO EN CIENCIAS EN

INGENIERÍA ELECTRÓNICA P R E S E N T A:

ING. PABLO ROCHA REALI

DIRECTOR DE TESIS: DR. MARCO ANTONIO OLIVER SALAZAR

CUERNAVACA, MORELOS MAYO DE 2005

Dedicatoria

A mis padres A mi familia en general

A todas aquellas personas a las que amo y me aman

Agradecimientos Agradezco a las oscuras fuerzas de la naturaleza por ofrecerme instantes de lucidez extraordinaria en los momentos más inesperados.

Agradezco a mis padres y mis hermanos por apoyarme en cualquier proyecto que decida emprender.

Agradezco a todos mis grandes amigos: Carlos, Arturo, Andrés, Israel, Bere, Enrique, Rodrigo, Gabriel, Gris, Memo, Manuel, Daphné, Lupita, Mariana, Fátima, Tavo, y todos los demás que no omito por olvido sino por espacio. Gracias por su amistad y apoyo incondicional.

Agradezco especialmente a Liz y Ana por los gratos momentos y la armoniosa convivencia.

Agradezco a mis amigos y compañeros de generación, en estricto orden alfabético: Alejandro, Alfredo, Alonso, Armando, Christian, Compiri, Dunstano, Eumir, Fabiola, Ing. George, Jorge, Lizeth, Manuel, Raúl, Ricardo y Roxana, por hacer mi estancia en Cuernavaca más agradable de lo que hubiera imaginado. Gracias también a todas las demás personas que tuve oportunidad de conocer en el CENIDET y que no nombro aquí por espacio.

Agradezco a mi asesor el Dr. Marco Oliver por sus sabios consejos, su paciencia y experiencia. Gracias por ser un buen guía.

Agradezco al comité revisor y a mis maestros en general por contribuir desinteresadamente a mi formación académica.

Agradezco al Consejo Nacional de Ciencia y Tecnología (CONACYT) y a la Secretaría de Educación Pública (SEP), por el apoyo económico y las facilidades prestadas.

Agradezco al Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) por permitirme la oportunidad de realizar mis estudios de maestría.

Resumen Este trabajo de tesis presenta la utilización de Espectros de Alto Orden (HOS) y más es-pecíficamente el Poliespectro de tercer orden, llamado Biespectro (BIS), en aplicaciones de procesamiento digital de imágenes. La utilización del Biespectro en el procesamiento de imágenes supone la estimación de esta función para secuencias bidimensionales, fini-tas de datos. La confiabilidad y precisión de los estimados dependen muchas veces de factores derivados de la naturaleza discreta y finita de la información. Existen técnicas para hacer que los estimados sean más confiables dando lugar a dos grandes grupos de estimación de funciones poliespectrales que son: Métodos paramétricos o basados en modelos matemáticos y métodos no-paramétricos o basados en secuencias de datos.

Esta investigación presenta la aplicación del Biespectro bajo el enfoque no-paramétrico lo cual trae consigo implicaciones computacionales así como dificultades en la represen-tación en los datos. Lo anterior introduce limitaciones de implementación que están es-trechamente ligadas a la necesidad de arreglos computacionales muy extensos, recursos de procesamiento demandantes y problemas como el envolvimiento de fase producido por el cálculo discreto de la función arco tangente. Se describen detalladamente dichas limitantes y se presentan soluciones alternativas a estos problemas.

Al inicio se presenta información básica detallada en relación con el procesamiento con-vencional de imágenes. Esto con el objeto de establecer parámetros de comparación y técnicas útiles para adecuar el uso de poliespectros en este campo de aplicación. Poste-riormente se introduce información relacionada con la estimación de las funciones po-liespectrales partiendo de formas generales propias de funciones unidimensionales y ex-tendiéndolas hacia el dominio bidimensional. Además se presentan algunos métodos para el procesamiento bidimensional y reconstrucción de señales a partir de su Biespectro en-contrados en la literatura correspondiente.

Se introducen descripciones detalladas para el desarrollo de algoritmos tanto de procesa-miento de imágenes como de estimación de Biespectros para generar en conjunto aplica-ciones que los relacionen. Tales algoritmos incluyen la resolución de las implicaciones computacionales por medio de la obtención de regiones no-redundantes; el desenvolvi-miento de la fase biespectral y la reconstrucción de secuencias bidimensionales a partir de su Biespectro. Éstos son usados posteriormente en aplicaciones reales relacionadas con las características de reducción de ruido gaussiano y detección de no-linealidades (corrección de gamma) asociadas comúnmente al Biespectro.

Finalmente, se presenta la implementación de las aplicaciones mencionadas analizando los resultados obtenidos y comparándolos contra técnicas utilizadas convencionalmente para propósitos similares.

Abstract This thesis work presents the use of Higher Order Spectra (HOS) and more specifically, the third order Polyspectra called Bispectrum, in digital image processing applications. The use of this Polyspectra in image processing implies the estimation of finite two-dimensional data Bispectrum. The precision and reliability of estimates commonly depend on issues related to finite and discrete nature of data. There are some techniques useful to obtain consistent Bispectrum estimates, giving rise to two polyspectral estimation approaches: The parametric or model-based methods, and the non-parametric or data-based methods.

In this work, the application of non-parametric Bispectrum estimation is presented. This approach leads to some computational implications and some representation troubles such as: The need of large data arrays, demanding processing resources, difficulty to plot 4-dimensional spaces and coherence troubles such as phase wrapping due to the use of arc tangent function in the computation of discrete phases. These troubles are described widely and some alternative solutions are given.

It is also presented, at the beginning, some detailed fundamental information related to conventional image processing. This information is introduced in order to set up comparison parameters and to find techniques useful for the adaptation of the polyspectral analysis techniques into the field of image processing. Later, it is introduced some information related to the estimation of polyspectral functions starting with general one-dimensional forms and extending them towards the two-dimensional ones.

It is also presented some two-dimensional processing methods and some signal reconstruction from Bispectrum data found in the reviewed literature.

Detailed descriptions on the development of processing algorithms are given. These descriptions include algorithms such as: image processing algorithms, Bispectrum estimation algorithms, non-redundant region computation, Bispectrum phase unwrapping algorithms, and algorithms for image reconstruction from its Bispectrum data.

Later, these procedures are used in real world applications related to gaussian noise reduction and non-linearity detection commonly associated to Bispectrum.

Finally, the implementation of some applications is presented. An analysis of the results obtained is given. The results are also compared against conventional processing employed for similar purposes.

I

Contenido

1. Introducción 1

1.1 Antecedentes ................................................................................................... 1

1.2 Estado del arte................................................................................................. 3

1.3 Justificación y objetivos.................................................................................. 4

1.4 Alcances y limitaciones .................................................................................. 5

1.5 Metodología .................................................................................................... 6

1.6 Organización del documento .......................................................................... 8

2. Procesamiento de imágenes 9

2.1 Fundamentos ................................................................................................... 9

2.2 Operaciones básicas de procesamiento......................................................... 11

2.2.1 Operaciones aritmético-lógicas ........................................................... 11

2.2.2 Operaciones de vecindad deslizante.................................................... 12

2.2.3 Operaciones de bloque distinto ........................................................... 12

2.2.4 Procesamiento por columnas............................................................... 13

2.3 Tipos de imagen y tipos de archivos............................................................. 13

2.4 Mapeo de intensidad ..................................................................................... 16

2.4.1 Brillo y contraste ................................................................................. 16

2.4.2 Corrección de gamma.......................................................................... 17

2.5 Filtrado espacial (bidimensional).................................................................. 18

2.5.1 Filtros suavizantes ............................................................................... 18

2.5.2 Filtros de realce ................................................................................... 19

2.6 Filtrado en el dominio de la frecuencia......................................................... 21

II

2.6.1 Transformada de Fourier..................................................................... 21

2.6.2 Filtrado pasa bajas............................................................................... 23

2.6.3 Filtrado pasa altas................................................................................ 24

2.6.4 Filtrado homo-mórfico ........................................................................ 24

2.7 Resumen ........................................................................................................26

3. Biespectro 27

3.1 Estadísticas de alto orden ..............................................................................27

3.1.1 Momentos............................................................................................ 28

3.1.2 Cumulantes.......................................................................................... 29

3.1.3 Relación entre momentos y cumulantes.............................................. 30

3.2 Poliespectros..................................................................................................32

3.2.1 Densidad espectral de potencia ........................................................... 33

3.2.2 Biespectro............................................................................................ 34

3.3 Poliespectros de señales bidimensionales .....................................................35

3.3.1 Bicoherencia........................................................................................ 37

3.3.2 Biespectro modificado......................................................................... 38

3.4 Estimación de las funciones poliespectrales .................................................38

3.4.1 Periodograma y Biperiodograma ........................................................ 39

3.4.2 Ventanas .............................................................................................. 40

3.5 Implicaciones computacionales.....................................................................41

3.6 Relación Biespectro-Imagen .........................................................................42

3.7 Reconstrucción usando el Biespectro............................................................42

3.7.1 Problemas en la reconstrucción........................................................... 43

3.7.2 Desenvolvimiento de fase ................................................................... 44

3.8 Resumen ........................................................................................................45

III

4. Desarrollo de algoritmos 47

4.1 Algoritmos de procesamiento de imágenes .................................................. 47

4.1.1 Lectura, acondicionamiento y escritura de imágenes.......................... 48

4.1.2 Corrección de gamma.......................................................................... 48

4.1.3 Filtrado lineal ...................................................................................... 49

4.1.4 Filtrado por mediana ........................................................................... 51

4.2 Algoritmos de estimación de Biespectros..................................................... 52

4.2.1 PSD unidimensional ............................................................................ 52

4.2.2 PSD bidimensional .............................................................................. 52

4.2.3 Biespectro unidimensional .................................................................. 53

4.2.4 Biespectro bidimensional .................................................................... 54

4.2.5 Periodograma y Biperiodograma......................................................... 55

4.2.6 Bicoherencia........................................................................................ 56

4.2.7 Biespectro Modificado ........................................................................ 57

4.3 Obtención de regiones reducidas .................................................................. 58

4.3.1 Desarrollo de un algoritmo de “fuerza bruta” ..................................... 58

4.3.2 Desarrollo de un algoritmo analítico ................................................... 61

4.3.3 Biespectro a partir de regiones no redundantes................................... 63

4.4 Desenvolvimiento de fase ............................................................................. 65

4.5 Algoritmos de reconstrucción ....................................................................... 69

4.6 Resumen........................................................................................................ 71

5. Aplicaciones 73

5.1 Funciones en Matlab®.................................................................................. 73

5.2 Reconstrucción usando fase desenvuelta ...................................................... 74

5.3 Reconstrucción a partir de observaciones ruidosas ...................................... 75

5.4 Reconstrucción por bloques.......................................................................... 76

IV

5.4.1 Enmascarado usando la Bicoherencia ................................................. 78

5.4.2 Enmascarado usando Biespectro modificado...................................... 79

5.4.3 Comparación contra técnicas convencionales..................................... 80

5.5 Uso indirecto del Biespectro en una aplicación ............................................82

5.5.1 Corrección inversa de gamma ............................................................. 82

5.6 Resumen ........................................................................................................87

6. Conclusiones 89

6.1 Conclusiones de aplicación ...........................................................................90

6.2 Aportaciones..................................................................................................91

6.3 Recomendación de trabajos futuros ..............................................................92

6.3.1 En cuanto a la reconstrucción.............................................................. 92

6.3.2 En cuanto a la aplicación..................................................................... 92

Referencias 93

Apéndices 97

A. Funciones de Matlab® ..................................................................................97

B. Funciones de análisis poliespectral .............................................................106

V

Lista de figuras y tablas

Figura 2.1 Vecindades deslizantes.................................................................................... 13

Figura 2.2 Imagen en bloques........................................................................................... 13

Figura 2.3 Tipos de imagen: a) binaria, b) intensidad, c) indexada y d) RGB ................. 14

Figura 2.4 Tablas de correspondecia ................................................................................ 16

Figura 2.5 Manipulación de Brillo (ordenada al origen) .................................................. 16

Figura 2.6 Manipulación de contraste (pendiente) ........................................................... 17

Figura 2.7 Corrección de gamma ..................................................................................... 17

Figura 2.8 Ajuste sigmoidal de contraste ......................................................................... 18

Figura 2.9 Filtrado espacial suavizante ............................................................................ 19

Figura 2.10 Filtrado espacial de realce ............................................................................. 20

Figura 2.11 Representaciones de imagen ......................................................................... 22

Figura 2.12 Filtro ideal pasa bajas.................................................................................... 23

Figura 2.13 Filtro ideal pasa altas..................................................................................... 24

Figura 2.14 Proceso de filtrado homo-mórfico ................................................................ 25

Figura 2.15 Filtrado homo-mórfico .................................................................................. 25

Figura 3.1 Regiones de soporte para cumulantes de orden tres........................................ 32

Figura 3.2 Regiones de soporte para el Biespectro........................................................... 35

Figura 3.3 Región de soporte del Biespectro 2D.............................................................. 37

Figura 3.4 Proceso de reconstrucción............................................................................... 43

Figura 3.5 Problemas en la reconstrucción....................................................................... 43

Figura 4.1 Filtro suavizante (Pasa bajas).......................................................................... 51

Figura 4.2 Filtro de realce (Pasa altas) ............................................................................. 51

Figura 4.3 Diagrama de flujo para obtener una región no redundante ............................. 59

Figura 4.4 Regiones no-redundantes del Biespectro Bidimensional ................................ 62

VI

Figura 4.5 Fase envuelta....................................................................................................68

Figura 4.6.Fase desenvuelta ..............................................................................................68

Figura 5.1 Reconstrucción con desenvolvimiento de fase ................................................74

Figura 5.2 Reconstrucción a partir de observaciones ruidosas..........................................75

Figura 5.3 Imagen con ruido gaussiano.............................................................................77

Figura 5.4 División de imagen en bloques ........................................................................77

Figura 5.5 Imagen reconstruida por bloques .....................................................................78

Figura 5.6 Compensación de los rangos de intensidad para la imagen reconstruida ........78

Figura 5.7 Reconstrucción de imagen usando la Bicoherencia como máscara .................78

Figura 5.8 Imagen procesada iterativamente, usando la Bicoherencia como máscara......79

Figura 5.9 Reconstrucción de imagen usando BISM como máscara ................................79

Figura 5.10 Imagen procesada mediante técnicas convencionales....................................80

Figura 5.11 Ejemplos de procesamiento por bloques........................................................81

Figura 5.12 Imagen artificial con gamma lineal................................................................84

Figura 5.13 Imagen con corrección de gamma usando γ=1.75 .........................................84

Figura 5.14 Corrección inversa de gamma por el enfoque unidimensional ......................85

Figura 5.15 Corrección inversa de gamma por enfoque bidimensional ............................85

Figura 5.16 Imagen real para la corrección inversa de gamma.........................................85

Figura 5.17 Resultado de la CIG unidimensional .............................................................85

Figura 5.18 Resultado de la CIG bidimensional ...............................................................86

Tabla 4.1 Coordenadas de la región no-redundante para M=N=3 ....................................60

Tabla 4.2 Num. de elementos de la región reducida para diferentes dimensiones............61

VII

Notación Símbolos

f(x,y): Función de intensidad espacial

α,β: Parámetros de mapeo sigmoidal de intensidad

A: Factor de amplificación para HighBoost

B: Biespectro

b : Bicoherencia

B : Biperiodograma

BM: Biespectro modificado

Bnorm: Biespectro normalizado

c,b: Parámetros de mapeo de intensidad

Ck: Cumulante de orden k

D(u,v): Distancia del punto (u,v) al origen

E[·]: Valor esperado, esperanza matemática, expectación

Φ(·): Fase del Biespectro

f(m,n): Función de intensidad espacial discreta

F(p,q): Transformada Discreta de Fourier de f(m,n)

φ: Fase

φw: Fase envuelta

φx: Valores principales de fase

g(u), g-1(·): funciones de mapeo de intensidad

VIII

γ(u,v): Logaritmo de la magnitud de Fourier

Γ(u1,v1,u2,v2): Logaritmo de la magnitud del Biespectro

γ: Parámetro de mapeo gamma (corrección de gamma)

Hn(u,v): Función de filtro lineal

i(x,y): Función de iluminación

I: Imagen

Ihb: Imagen filtrada por HighBoost

IPB: Imagen filtrada por PasaBajas

k(v): Función generadora de cumulantes

kmk,knk: Variables en el dominio discreto de la frecuencia

mk: Momento de orden k

N,M: Numero de muestras de una señal

2 2, −⊥ ⊥∇ ∇ : Operadores laplacianos

P: Densidad espectral de potencia

P : Periodograma

r(x,y): Función de reflectancia

Rxx: Función de auto correlación

τn: desplazamiento en el tiempo

w(·): Función de ventana

Ω: conjunto de frecuencias angulares

x(kn): Función en tiempo discreto

X(k): Transformada discreta de Fourier de x(kn)

IX

Abreviaturas

AR: Auto regresivo (Auto regressive)

ARMA: Auto regresivo de media móvil (Auto Regressive Moving Average)

BIC: Bicoherencia

BIRA: Algoritmo de reconstrucción iterativa de Biespectro (Bispectrum Iterative Re-construction Algorithm)

BIS: Biespectro

BISM: Biespectro modificado

CCD: Dispositivo de carga acoplada (Coupled Charge Device)

CD: Corriente Directa

CIG: Corrección Inversa de Gamma

DFT: Transformada Discreta de Fourier (Discrete Fourier Transform)

FFT: Transformada Rápida de Fourier (Fast Fourier Transform)

HOS: Espectros de Alto Orden (Higher Order Spectra)

IPTB: Toolbox de Procesamiento de Imágenes (Image Processing ToolBox)

LUT: Tabla de correspondencia (LookUp Table)

MA: Media móvil (Moving Average)

Mb: Megabyte

MP: Magnitud, fase (phase)

PSD: Densidad Espectral de Potencia (power spectral density)

RGB: Rojo, azul y verde (Red Green Blue)

TB: Toolbox

X

Convenciones tipográficas

En este documento se manejan las siguientes convenciones: Los listados de programa, programas de ejemplo y palabras del texto que hacen referencia a éstos se muestran en un tipo de letra distinto (courier new de 10pts). Algunos caracteres usados como fun-ciones o palabras reservadas se presentan utilizando la versión negrita del tipo de letra especial para distinguirlos de otras expresiones. Los programas y ejemplos de programas se presentan en pseudo-código bajo las siguientes reglas básicas de sintaxis:

• Se usa := para asignar valores a una variable y = como operador relacional.

• Se usan corchetes [] para indicar una variable introducida por el usuario.

• El carácter de punto y coma ;, indica que el texto siguiente son comentarios. Comúnmente se comenta línea por línea, comenzando con letra mayúscula los co-mentarios de una línea y continuando en la siguiente línea con letra minúscula en caso de ser necesarias más líneas de comentarios para una línea o sección del pro-grama.

• Se usan iteraciones del tipo for con la siguiente sintaxis: for [variable]:=[cte],condición,incremento instrucciones end

• La definición de funciones se hace comenzando con la palabra reservada función seguida del nombre de la función y sus argumentos entre paréntesis. El cuerpo de la función debe terminar con la palabra reservada regresar seguida de un argu-mento de salida y la palabra end en la siguiente línea.

• Para direccionar un arreglo de memoria se usa el nombre del arreglo seguido por los índices separados por comas entre corchetes p.e. x[i,j].

• Se usan los operadores de suma +, resta -, multiplicación *, división / y potencia ^ sin diferenciar para operaciones matriciales.

• Las características del código no previstas aquí se indicarán por comentarios en la línea correspondiente.

A continuación se presenta un ejemplo: x := [entrada por teclado] ; Esto es un comentario c := 5 ; Este comentario es independiente v := prueba(x,c) ; Uso de una función función prueba(x,c) ; Esta línea comienza comentando el for i:=1,i=c,i++ ; inicio de la función y ocupa dos y:=y+x*i ; líneas adicionales end ; Comentario nuevo para el end de for regresar y ; Argumento de salida de la función end ; Fin de función

1

1. Introducción

1.1 Antecedentes

El procesamiento digital de señales es un área de la ingeniería que evoluciona rápida-mente y juega un papel clave en la revolución industrial de alta tecnología que se vive actualmente. En los últimos 40 años, la carrera emprendida por la industria del silicio para la integración y miniaturización de circuitos ha contribuido decisivamente al desa-rrollo de sistemas electrónicos rápidos, eficientes y de bajo costo capaces de realizar la mayoría de las tareas del procesamiento de señales. El alto rendimiento de esos sistemas, su versatilidad, junto con otros elementos de manufactura, han promovido el crecimiento de un enorme mercado para las aplicaciones basadas en el procesamiento de información.

El objetivo final en cualquier escenario de procesamiento digital de señales es procesar una secuencia finita de muestras y extraer información importante la cual está general-mente oculta en los datos. Gran parte de los esfuerzos puestos en el procesamiento digital de señales están encaminados a mejorar la calidad en la representación. Un uso primario del procesamiento digital de señales es reducir interferencia, ruido y otros componentes indeseables en los datos adquiridos. Tales componentes pueden ser parte inherente de la señal, ser causados por imperfecciones en el sistema de adquisición de datos o introdu-cirse por algún fenómeno inevitable producido por operaciones propias del procesa-miento.

La probabilidad y la estadística permiten medir y clasificar dichas particularidades pro-blemáticas mediante la caracterización de las señales y los procesos que las generan, lo cual es el primer paso en el desarrollo de estrategias para remover los componentes no deseables. Esto se logra generalmente combinando el desarrollo de formulaciones mate-máticas y su implementación algorítmica con la aplicación sobre datos reales, lo cual conlleva a ciertos límites de rendimiento en la estimación así como implicaciones tanto computacionales como físicas.

Anteriormente, muchas de las herramientas desarrolladas para dicho propósito compren-dían el uso de técnicas basadas en estadísticas de primer o segundo orden, las cuales son “ciegas” a ciertas características distintivas de las señales, por ejemplo, la transformada de fourier de la función de correlación es ciega a la fase. Recientemente (en la última dé-cada), se han desarrollado herramientas basadas en estadísticas de orden superior y sus transformadas de Fourier, denominadas “Espectros de alto orden” (HOS por sus siglas en inglés) o “Poliespectros”, que han demostrado tener gran potencial en diversos campos de aplicación. Aún cuando existen aplicaciones reales de HOS en algunas áreas del conoci-

2 Capítulo 1. Introducción

miento (para una lista exhaustiva ver [1]), en otros campos su utilización no ha pasado de la potencialidad a la aplicación consistente.

La utilización de HOS en aplicaciones reales supone la estimación de funciones polies-pectrales sobre secuencias finitas de datos. La confiabilidad y precisión de dichas estima-ciones están sujetas a diversos factores derivados de la naturaleza finita de los datos. Se han desarrollado técnicas para hacer que una estimación se aproxime más cercanamente al valor esperado, de ahí que los métodos para estimar espectros de alto orden se dividan en dos grandes grupos que son: métodos paramétricos y métodos no-paramétricos.

Gran parte de las aplicaciones que utilizan técnicas poliespectrales se basan en métodos de estimación paramétricos, los cuales derivan el espectro a partir de parámetros de mo-delos AR (auto regresivo), MA (promedio móvil) y ARMA (auto-regresivo de promedio móvil). A pesar de su relativa facilidad de implementación, son pocas las aplicaciones que se han desarrollado utilizando métodos no-paramétricos debido principalmente a la necesidad de grandes conjuntos de datos y las implicaciones de cómputo que éstos con-llevan.

Entre las áreas en las que encuentra aplicación el análisis poliespectral se localiza el pro-cesamiento de imágenes. Las imágenes pueden considerarse como señales con caracte-rísticas especiales. Primero, son la medición de un parámetro (intensidad) con referencia a un par de coordenadas espaciales, mientras que la mayoría de las señales son medicio-nes de un parámetro relativo al tiempo. Segundo, contienen gran cantidad de informa-ción. Tercero, el juicio de calidad es, con frecuencia, una evaluación subjetiva hecha por el sistema visual humano en vez de un criterio objetivo. Tales características especiales han hecho del procesamiento digital de imágenes un subgrupo dentro del procesamiento digital de señales.

El presente trabajo propone la utilización práctica de HOS, y más específicamente el Po-liespectro de tercer orden denominado Biespectro (BIS), en aplicaciones de procesa-miento digital de imágenes. Tal implementación se propone bajo un enfoque no-paramé-trico el cual trae consigo implicaciones computacionales y problemas de coherencia en la representación de los datos que introducen limitantes cuando se trata de llevar la teoría a la práctica. Se presenta una descripción de dichas limitaciones así como algunas alterna-tivas de solución con el objeto de generar procedimientos computacionales útiles en el procesamiento digital de imágenes. Se presentan además, los procedimientos generados y los resultados alcanzados al aplicarlos en el procesamiento de imágenes reales.

1.2 Estado del arte 3

1.2 Estado del arte

En los últimos años ha habido un creciente interés en la aplicación de espectros de alto orden en una amplia gama de problemas de la teoría de sistemas y procesamiento de se-ñales. Esto se debe a que son muy útiles en problemas donde la no-gaussianidad, fase no mínima, ruido sistemático (ruido “coloreado”) o no linealidades, son importantes y deben ser tomados en cuenta. A este respecto, se han publicado cientos de artículos; en [1] y [2] se ofrecen listas de referencias exhaustivas en cuanto a aplicaciones y se presentan tam-bién conceptos básicos sobre la estimación de Poliespectros por métodos paramétricos y no paramétricos.

La literatura en cuanto a la estimación y aplicación de los espectros de alto orden es muy extensa. Sin embargo, el interés de esta tesis se centra en la estimación del Biespectro y su aplicación en el procesamiento de imágenes por lo que se considerará solo la literatura que involucre a estos dos temas, además de publicaciones que aborden la estimación de Poliespectros para señales de dos dimensiones.

Algunos trabajos han presentado métodos de reconstrucción para señales bidimensionales a partir de su Biespectro y dos de ellos [3][4], se han estudiado a profundidad con la intención de implementar los métodos que ahí se proponen. Al estudiar éstos y otros tra-bajos, se encontraron algunas coincidencias en cuanto a los problemas que pueden pre-sentarse cuando se trata de reconstruir señales a partir de su Biespectro. Más adelante se discutirán ampliamente dichos procedimientos.

La aplicación de los espectros de alto orden en el procesamiento de imágenes ha gene-rado diversas publicaciones, en algunas de ellas, se proponen uno o varios métodos de estimación para el Biespectro y su aplicación a la restauración o reconstrucción de imá-genes. La mayoría no muestra ninguno de los procedimientos computacionales y los re-sultados que arrojan son meramente teóricos o presentan pocos resultados experimenta-les. En [5] por ejemplo, se habla acerca de la aplicación en la restauración de una imagen pero en cuanto a la experimentación, solo se toma una señal de 256 muestras que repre-sentan una línea escogida al azar de alguna imagen degradada por ruido en vez de la ima-gen completa.

Otros trabajos, presentan el uso del Biespectro en combinación con alguna técnica con-vencional para el procesamiento de imágenes, en algunos casos, se utiliza el Biespectro como una herramienta secundaria para recopilar información adicional [6],[7]. Varios autores han presentado el uso del Biespectro, o información parcial de éste, en aplicacio-nes muy específicas como el procesamiento de imágenes obtenidas por radares de aper-tura sintética (SAR) [8],[9],[10]; el reconocimiento de patrones en imágenes [11][12] o huellas digitales [13]; identificación de difuminado [7]; y análisis, modelado y validación de imágenes de texturas [12].

4 Capítulo 1. Introducción

Otra aplicación importante del Biespectro en relación con el procesamiento de imágenes es la reconstrucción de imágenes provenientes de telescopios. En ellas se aborda la pro-blemática de las limitaciones de resolución de los sistemas de imagen en telescopios es-tándares debidas a fenómenos atmosféricos. Las técnicas para la extracción de informa-ción adicional sobre la resolución son comúnmente llamadas speckle interferometry, estas técnicas han sido usadas por ejemplo, en la reconstrucción de imágenes de difracción li-mitada cercanas al infrarrojo de una nebulosa denominada rectángulo rojo [14].

Por otro lado, también han surgido publicaciones en cuanto al uso del Biespectro o una parte de éste (p.e. la fase) aprovechando sus propiedades de simetría e invariancia [15]. Hay trabajos que proponen algoritmos iterativos para la reconstrucción de señales usando la información de fase del Biespectro como el denominado BIRA (Bispectrum Iterative Reconstruction Algorithm) [16]. Este algoritmo es aplicado a la fase del Biespectro de una imagen alterada con ruido blanco gaussiano con el objeto de reconstruirla.

Varios de los trabajos aquí mencionados han reportado el uso de técnicas unidimensio-nales para el tratamiento de las imágenes [17], a pesar de la naturaleza bidimensional de éstas. Además, la mayoría de ellos utiliza métodos de estimación paramétricos y en pocos casos se proporciona información sobre la implementación de los procedimientos o la resolución de problemas de reconstrucción como el envolvimiento de fase, concepto que será aclarado más adelante.

Otros trabajos relacionados con el BIS que se han desarrollado [18] o que están en desarrollo [19] en el CENIDET emplean, de forma indirecta, la información proporcio-nada por la estimación del BIS de señales unidimensionales. Esta tesis contempla la apli-cación de dicho procedimiento extendido al dominio bidimensional y adicionalmente, plantea un nuevo procedimiento conocido como reconstrucción para el procesado. Lo cual involucra la utilización de toda la información proporcionada por el BIS realizando una transformación inversa. En otras palabras, la obtención del BIS inverso.

1.3 Justificación y objetivos

Como se ha mencionado, el estudio y utilización de las funciones poliespectrales y más específicamente el BIS, ha sido explorado por trabajos anteriores en el CENIDET. Tam-bién se han conducido investigaciones relacionadas con el procesamiento digital de imá-genes, pero en ninguna de estas investigaciones se ha establecido una relación directa entre uno y otro tema. Es interesante entonces, encaminar el uso del BIS en aplicaciones de procesamiento de imágenes y dimensionar su aplicación.

Si bien la aplicación que se propone ha sido abordada en trabajos reportados por diferen-tes autores, muchos de ellos proponen la aplicación desde un punto de vista paramétrico y vagamente han dado a conocer la manera en la que se implementan los procedimientos

1.4 Alcances y limitaciones 5

(know-how). Muchos de los autores que han trabajado con la reconstrucción a partir del BIS reportan dificultades debidas en parte a las implicaciones computacionales y princi-palmente a algunos problemas relacionados con el envolvimiento de fase. Esta tesis plantea alternativas de solución a dichos problemas.

Enfocar tanto las técnicas de estimación así como el uso de la información obtenida me-diante el Biespectro hacia el procesamiento digital de imágenes, es uno de los principales objetivos de este trabajo. La resolución de problemas para conseguir dicha meta, consti-tuye una serie de objetivos particulares que se definirán durante el desarrollo de este do-cumento. Los objetivos generales, planteados en relación con lo mencionado reciente-mente junto con las perspectivas, alcances y limitaciones que esto representa se muestran a continuación:

1. Familiarizarse con los procedimientos de estimación de las funciones espectrales de alto orden para señales de una y dos dimensiones; establecer di-ferencias.

2. Enfocar las herramientas de análisis poliespectral de señales bidimensionales hacia el procesamiento de imágenes.

3. Establecer las bases para el procesamiento de imágenes usando el Biespectro.

4. Desarrollar al menos una aplicación utilizando dichas técnicas y establecer comparaciones con alguna técnica usada convencionalmente.

5. Conocer las ventajas y limitaciones reales de esta herramienta de procesa-miento.

Cabe aclarar que el tercer objetivo se busca teniendo en mente el uso de técnicas de esti-mación no-paramétricas para el Biespectro de señales bidimensionales. Además, la con-secución de los objetivos centrales implica el desarrollo de algoritmos y sus implementa-ciones como elementos de software útiles para el procesamiento práctico de imágenes.

1.4 Alcances y limitaciones

Este trabajo propone el desarrollo y aplicación de algoritmos de procesamiento digital de imágenes usando el Biespectro desde un enfoque no-paramétrico y utilizando toda la in-formación proporcionada por la estimación del Biespectro de la señal bidimensional. La extensión del uso de técnicas del análisis poliespectral para señales unidimensionales a señales bidimensionales representa serias complicaciones.

Uno de los mayores obstáculos se debe a las implicaciones computacionales resultantes de la estimación del Biespectro de señales bidimensionales. Tales limitantes, hacen que el desarrollo de este tipo de aplicaciones no se aborde tan frecuentemente desde el enfoque

6 Capítulo 1. Introducción

no-paramétrico, dando preferencia a métodos de estimación paramétricos así como enfo-ques unidimensionales.

La ventaja de usar métodos no-paramétricos radica en que no tienen que definirse mode-los matemáticos complicados, además de que no es necesario contar con información a priori del proceso de adquisición de los datos. Esto hace que las herramientas desarrolla-das bajo métodos no-paramétricos sean más generales y se puedan usar, en teoría, para una amplia gama de aplicaciones.

La introducción de técnicas basadas en la reconstrucción trae consigo problemas adicio-nales a los ya mencionados como son el desenvolvimiento de fase y el desarrollo de ventanas para el enmascaramiento de Biespectro, a este respecto se hablará más a detalle en la sección 3.7.

A pesar de los problemas y complicaciones que se mencionan, resulta interesante obser-var el comportamiento de las técnicas del análisis poliespectral en el procesamiento de imágenes. En la literatura se ha expuesto una serie de beneficios sobre el uso del Bies-pectro y se han presentado, mayormente, casos en donde se comprueban tales ventajas bajo un punto de vista paramétrico [1]. Este trabajo buscará dimensionar las ventajas que representa el desarrollo de algoritmos bajo un enfoque no-paramétrico así como contras-tar el uso de éstos con el uso de técnicas convencionales.

Finalmente, la elección de una u otra técnica dependerá de la aplicación en la que se re-quiera, identificando las necesidades de procesamiento y la naturaleza de los resultados esperados. Dado que quien emite el último juicio en cuanto a la calidad de una imagen es el sistema visual humano, las comparaciones entre los resultados de una técnica u otra pueden llegar a ser muy subjetivas y depender en gran medida de la aplicación en que se requieran.

1.5 Metodología

Hasta el momento se ha introducido de manera muy general el tipo de información nece-saria para el desarrollo de esta investigación y se ha dado a conocer de manera intuitiva el flujo de las actividades necesarias para la consecución de los objetivos. A continuación se presentará una descripción de las actividades realizadas durante el desarrollo de la tesis.

Como parte inicial de la investigación se realizó un estudio relativamente profundo de las técnicas básicas de procesamiento digital de imágenes. Dicho estudio arrojó conoci-mientos desde los más básicos, como son los modelos y operaciones primarias en imáge-nes, hasta otros más complejos como el diseño de filtros especiales y la utilización de técnicas de filtrado tanto en el dominio espacial como en el dominio de la frecuencia. Se

1.5 Metodología 7

realizaron además algunos experimentos utilizando las técnicas aprendidas como com-plemento didáctico a este estudio.

Posteriormente se comenzó con el estudio de las técnicas de análisis poliespectral pri-mero en relación con la estimación de funciones poliespectrales para señales unidimen-sionales para después comenzar con el estudio de las técnicas equivalentes a señales de dos dimensiones. Conforme se avanzó en este estudio se lograron identificar notables di-ferencias entre los procedimientos de estimación de espectros de alto orden para señales unidimensionales y para señales bidimensionales. Tales diferencias sugirieron trasladar nuestro estudio completamente al dominio bidimensional, campo que no ha sido tan ex-plorado.

Dado que la literatura sobre la obtención de funciones poliespectrales para señales bidi-mensionales está aún en desarrollo, algunas de las formulaciones necesarias para la esti-mación de tales funciones tuvieron que hacerse a partir de los métodos unidimensionales extendiéndolos hacia el dominio bidimensional considerando ciertas premisas y conven-ciones. Se estudiaron además, los métodos utilizados por algunos autores para el proce-samiento y reconstrucción de señales bidimensionales y se propusieron algunas alternati-vas de diseño para su implementación.

A partir de la información estudiada se desarrollaron algoritmos para el procesamiento de imágenes usando las técnicas convencionales encontradas en la literatura así como algo-ritmos para la estimación del Biespectro por métodos no-paramétricos tanto para señales unidimensionales como para señales de dos dimensiones.

El diseño de algoritmos para el procesamiento de imágenes usando el Biespectro se co-menzó luego de resolver algunos problemas asociados con la reconstrucción de imágenes y con algunas limitaciones computacionales que esto conlleva. La resolución de dichos problemas arrojó también algunos algoritmos útiles para el diseño de aplicaciones prácti-cas de procesamiento de imágenes.

Se implementaron y probaron los algoritmos propuestos en el orden que se ha descrito para llegar finalmente al desarrollo de elementos de software de aplicación para el proce-samiento de imágenes y su comparación con otras técnicas convencionalmente usadas. Finalmente se realizaron pruebas utilizando las herramientas desarrolladas y se analiza-ron los resultados obtenidos para generar conclusiones finales del trabajo de investiga-ción.

8 Capítulo 1. Introducción

1.6 Organización del documento

Este documento consta de 6 capítulos en los que se presenta la información progresiva-mente comenzando con un estudio teórico para pasar posteriormente al diseño, imple-mentación y pruebas de los algoritmos de procesamiento. El presente capítulo tiene un objetivo introductorio en el que se aclara la naturaleza de la investigación, se plantean objetivos y se da un panorama general del trabajo. En los siguientes dos capítulos se pre-senta la información teórica sobre la cual se sustenta la investigación, en los dos capítulos subsiguientes se exhiben los procedimientos de diseño e implementación de algoritmos y el desarrollo de aplicaciones utilizando dichos algoritmos. De manera particular, se pre-senta un capítulo con las conclusiones del trabajo de investigación.

En el Capítulo 2 se muestra información referente al procesamiento digital de imágenes comenzando por definir conceptos básicos para concluir con información acerca de la implementación de técnicas de procesamiento convencionales.

En el Capítulo 3 se presenta información respectiva a la obtención y estimación de es-pectros de alto orden haciendo énfasis en lo referente al Poliespectro de tercer orden. Se comienza con conceptos básicos sobre el origen de estas funciones y se extiende el estu-dio a la obtención del Biespectro de señales bidimensionales estableciendo algunas rela-ciones entre características del Biespectro que pueden asociarse con efectos sobre las imágenes. Se concluye este capítulo con información referente a la aplicación del Bies-pectro en el procesamiento de imágenes y se describen los problemas e implicaciones que esto representa.

En el Capítulo 4 se exhibe el diseño de algoritmos ligados a los conceptos expuestos en los dos capítulos anteriores. Además se proponen y se desglosan soluciones para los pro-blemas presentados en el Capítulo 3. Finalmente se presenta el diseño de algoritmos para la aplicación del procesamiento de imágenes usando el Biespectro. El diseño de los algo-ritmos va acompañado de la descripción de su implementación en Matlab y algunos ejemplos cuando se considera pertinente.

En el Capítulo 5 se expone el desarrollo de aplicaciones prácticas de procesamiento de imágenes usando el Biespectro. Se presentan complementariamente aplicaciones simila-res como punto de comparación y se despliegan y analizan los resultados obtenidos.

En el Capítulo 6 se establecen conclusiones finales en base a los resultados obtenidos así como los alcances y aportaciones conseguidas con este trabajo. Se presentan también al-gunas sugerencias para posibles trabajos futuros sobre la misma línea de investigación.

9

2. Procesamiento de imágenes

El procesamiento digital de señales es una de las tecnologías más poderosas la cual moldeará la ciencia y la ingeniería del siglo XXI. Ya se han registrado cam-bios revolucionarios en una amplia gama de campos como son: comunicaciones, imágenes médicas, radar & sonar, audio digital, por nombrar solo algunos. Cada una de estas áreas ha desarrollado una tecnología de procesamiento digital de se-ñales profunda con sus propios algoritmos, matemáticas y técnicas especializadas. Esta combinación de fundamentos y profundidad hace casi imposible para cual-quiera poder dominar todas las formas de procesamiento digital que se han desarrollado. La investigación en el procesamiento digital de señales envuelve dos tareas bási-cas: Aprender conceptos generales que aplican en un campo y aprender técnicas especializadas para la aplicación en el área de interés. Este capítulo está dedicado a la introducción de conceptos de procesamiento de imágenes indispensables para comprender el campo de aplicación y poder proseguir con conceptos relacionados con las técnicas específicas que se usarán en la aplicación de procesamiento digi-tal de imágenes.

2.1 Fundamentos

El término imagen se refiere a una función bidimensional de la luz y la intensidad, a la que se puede indicar como f(x,y), donde el valor de la amplitud de f en las coordenadas espaciales (x,y), representa la intensidad (iluminación de la imagen) en ese punto. El pri-mer par de coordenadas (0,0) para la representación de una imagen se localiza en la es-quina superior izquierda y no en la esquina inferior.

Puesto que la luz es una forma de energía, f(x,y) debe ser estrictamente mayor que cero y finita, es decir: 0 ( , )f x y< <∞ . Una de las características más importantes de los datos que definen esta función es la naturaleza especial de la dependencia estadística del nivel de gris de cierto punto (píxel) con relación a algunos de sus puntos vecinos [19].

Las imágenes que se perciben en las actividades visuales cotidianas provienen normal-mente de la luz reflejada por los objetos. La naturaleza básica de f(x,y) puede estar ca-racterizada entonces, por dos componentes:

1. La cantidad de luz incidente que proviene de la fuente sobre la escena contem-plada.

2. La cantidad de luz reflejada por los objetos de la escena.

10 Capítulo 2. Procesamiento de imágenes

De forma apropiada, dichas componentes reciben el nombre de iluminación y reflectancia y se indican por i(x,y) y r(x,y) respectivamente. Las funciones i(x,y) y r(x,y) se combinan como producto para obtener f(x,y) por lo que:

0 ( , )

( , ) ( , ) ( , )0 ( , ) 1

i x yf x y i x y r x y donde

r x y

< <∞=

< < (2.1)

La reflectancia está acotada entre 0 (absorción total) y 1 (reflexión total). La naturaleza de i(x,y) está determinada por la fuente de luz y r(x,y) está determinada por las caracte-rísticas de los objetos de la escena.

Este modelo de iluminación-reflectancia puede emplearse como base de un procedi-miento en el dominio de la frecuencia que es útil para mejorar la apariencia de una ima-gen a través de la compresión del rango de intensidades y de la mejora del contraste rea-lizadas simultáneamente. Dicho procedimiento se conoce como filtrado homo-mórfico y se explicará más adelante.

El procesamiento digital de imágenes comprende el uso de recursos en hardware, soft-ware y teóricos. La primera etapa del procesamiento es la adquisición de la imagen, y para ello se necesita un sensor de imágenes y la posibilidad de digitalizar la señal produ-cida por el sensor. Entre los dispositivos empleados con mayor frecuencia para este fin se encuentran las matrices de detectores fotosensibles de estado sólido. Las matrices de es-tado sólido están constituidas siguiendo una de las dos organizaciones simétricas princi-pales: los sensores de barrido de línea y los sensores de área.

Un sensor de barrido de línea está constituido por una fila de foto detectores y produce una imagen bidimensional por el movimiento relativo entre la escena y el detector, éstos son utilizados frecuentemente en la construcción de escáneres. Un sensor de área está constituido por una matriz de foto detectores y por ello es capaz de capturar una imagen en un tiempo muy corto, éstos son utilizados en las cámaras fotográficas modernas. La tecnología utilizada en los sensores de estado sólido se basa principalmente en los dispo-sitivos de carga acoplada o CCD por sus siglas en inglés.

Durante el proceso de generación de imágenes pueden introducirse algunos tipos de ruido. Generalmente los píxeles con ruido aparecen como puntos muy diferentes a su ve-cindad (oscuros o saturados). Estos puntos pueden aparecer distribuidos aleatoriamente o en forma sistemática. Las causas de dicho ruido pueden ser fallas de los detectores, limi-taciones del sistema electrónico del sensor, inestabilidad en la fuente de luz o del detector durante el tiempo requerido para escanear o digitalizarla, entre otros.

Por ruido se denota cualquier entidad en las imágenes, datos o resultados intermedios que no son interesantes para la computación que se pretende llevar a cabo. Se puede clasificar al ruido en los cuatro tipos que se presentan con mayor frecuencia:

2.2 Operaciones básicas de procesamiento 11

• Gaussiano: Produce variaciones en la imagen que pueden caracterizarse por una distribución de probabilidad normal o Gaussiana. Se da debido a las diferentes ganancias en el sensor, interferencia en los digitalizadores, perturbaciones en la transmisión, etc.

• Impulsional: El valor que toman algunos píxeles no tiene relación con el valor real sino que toman valores muy altos o bajos. El píxel toma un valor máximo, causado por una saturación del sensor, o mínimo, si se ha perdido su señal.

• Frecuencial o aditivo: La imagen obtenida es la suma entre imagen ideal y otra señal. La interferencia se caracteriza por ser una senoide o una suma de ellas con frecuencias determinadas.

• Multiplicativo: La imagen obtenida es fruto de la multiplicación de la señal origi-nal con una señal de interferencia.

2.2 Operaciones básicas de procesamiento

El proceso de digitalización de la imagen genera bloques de información almacenados en arreglos de memoria, los cuales contienen la información de los niveles de intensidad de la imagen. Dichos arreglos se representan generalmente como matrices para futuras ope-raciones de procesamiento. Tal representación permite realizar operaciones aritméticas y lógicas utilizando algoritmos diseñados para operaciones entre matrices.

Algunas operaciones de procesamiento de imagen involucran la manipulación por sec-ciones o bloques en vez de procesar toda la imagen al mismo tiempo. La filosofía del procesamiento por bloques es descomponer la imagen original en imágenes más peque-ñas, aplicar la función de procesamiento para cada porción y reensamblar los bloques re-sultantes en una imagen de salida.

2.2.1 Operaciones aritmético-lógicas

Este tipo de operaciones se emplean muy a menudo en la mayoría de las ramas del proce-samiento de imágenes. Las operaciones aritméticas sobre imágenes completas se realizan píxel a píxel. Aunque en la práctica las imágenes son representadas como matrices de datos, las operaciones de multiplicación y división para imágenes se realizan punto a punto a diferencia de las mismas operaciones para arreglos matriciales comunes.

Las operaciones lógicas AND, OR, NOT y XOR se realizan de la misma forma, es decir, punto a punto y su utilización es más frecuente en imágenes binarias.

Además del procesamiento de imágenes enteras píxel a píxel, las operaciones aritméticas y lógicas pueden emplearse en procedimientos orientados a los píxeles vecinos, este en-foque es muy utilizado por diversas técnicas y será descrito a continuación.

12 Capítulo 2. Procesamiento de imágenes

2.2.2 Operaciones de vecindad deslizante

En este tipo de procesamiento se realiza alguna operación para cada píxel en la imagen de entrada con el objeto de determinar el valor de cada píxel de la imagen de salida. La ope-ración se basa en los valores de un bloque de píxeles vecinos.

Se entiende por vecindad de un píxel, como un conjunto de elementos definido por las posiciones relativas de cada píxel con respecto al punto en cuestión el cual es llamado píxel central. La vecindad es un bloque rectangular y conforme se desplace de un ele-mento al siguiente en una matriz de imagen, la vecindad se desliza en la misma dirección.

El píxel central es en realidad aquel que será procesado en la imagen de entrada. Si la ve-cindad tiene un número impar tanto de filas como de columnas, el píxel central estará justo en el centro, pero, si alguna de las dimensiones tiene una longitud par, el píxel cen-tral estará justo a la izquierda o justo arriba del centro.

La Figura 2.1 muestra las vecindades para algunos elementos en una matriz de 6 x 5 con bloques deslizantes de 2 x 3. Como puede observarse, algunos píxeles de las vecindades no forman parte de la matriz de la imagen, por lo que es necesario rellenar con ceros los píxeles faltantes.

Para realizar una operación de vecindad deslizante se llevan a cabo los siguientes pasos:

1. Seleccionar el píxel a procesar.

2. Determinar la vecindad del píxel.

3. Aplicar alguna función a los valores de los elementos de la vecindad. Esta función debe regresar un escalar.

4. Localizar el píxel en la imagen de salida que corresponde con el píxel central de la vecindad que se ha procesado. Asignarle el valor obtenido por la función aplicada (escalar resultante del paso 3).

5. Repetir los pasos del 1 al 4 para cada píxel de la imagen de entrada.

Las operaciones de vecindad deslizante son útiles en la implementación de varios tipos de operaciones de filtrado. Un ejemplo de ello es la convolución, la cual es usada para im-plementar el filtrado lineal, además, hay muchas otras operaciones de filtrado de natura-leza no lineal que se pueden implementar a través de operaciones de vecindad deslizante, algunas de estas operaciones se verán en secciones posteriores.

2.2.3 Operaciones de bloque distinto

La imagen es dividida en bloques rectangulares y se realiza alguna operación en cada uno de ellos de forma individual con el objeto de determinar los valores de los píxeles en la región correspondiente de la imagen de salida.

2.3 Tipos de imagen y tipos de archivos 13

Figura 2.1 Vecindades deslizantes Figura 2.2 Imagen en bloques

Los bloques son particiones rectangulares que dividen a la matriz en m x n secciones, éstos se sobreponen a la matriz de la imagen comenzando en la esquina superior iz-quierda sin que haya empalmes. Si los bloques no coinciden exactamente con el tamaño de la matriz, es necesario agregar ceros para hacerlos coincidir. La Figura 2.2 muestra una matriz de 7 x 11 dividida en 9 bloques de 3 x 4, una vez que se han añadido los ceros correspondientes, el tamaño de la matriz queda de 9 x 12. Cada bloque de la imagen será procesado de manera individual punto a punto, como si se tratara de una imagen inde-pendiente para posteriormente reensamblar los bloques resultantes.

2.2.4 Procesamiento por columnas

El procesamiento por columnas es una alternativa para realizar operaciones tanto de ve-cindad como de bloque, consiste en dividir la imagen ya sea en vecindades o en bloques para después transformar las divisiones a una forma unidimensional (vector). Este enfo-que es útil para agilizar los algoritmos e introducir la posibilidad del empleo de funciones con dominios unidimensionales.

2.3 Tipos de imagen y tipos de archivos

La resolución de una imagen depende estrechamente de dos parámetros: el muestreo y la cuantificación. Cuanto más se incrementan éstos, más se aproxima la imagen digitalizada a la imagen original. Sin embargo la capacidad de almacenamiento y consecuentemente las necesidades de procesamiento crecen rápidamente en la misma proporción. Existen técnicas de muestreo y cuantificación no uniformes que ayudan de una u otra forma a solucionar el problema del incremento en las necesidades para el almacenaje y procesado de las imágenes.

Además, existen diferentes tipos de almacenamiento que dependen de relaciones defini-das entre los valores de un arreglo de datos y los colores de un píxel. Tales relaciones dan origen a los cuatro tipos más comunes de imágenes los cuales se describen a conti-nuación:

14 Capítulo 2. Procesamiento de imágenes

• Imágenes binarias. Son aquellas que solo contienen píxeles negros o blancos, se representan como un arreglo de unos y ceros. Se usan comúnmente en imágenes de fax y en aplicaciones donde es crucial el ahorro de memoria (Figura 2.3a).

• Imágenes de intensidad. Son imágenes que están constituidas por valores de intensidad de gris directamente. Las imágenes de intensidad no se almacenan junto con mapas de color por lo que suelen ser de menor tamaño (comparadas con imá-genes indexadas). También se les conoce como imágenes de escala de grises (Figura 2.3b).

• Imágenes indexadas. Son imágenes cuyos valores de píxel son índices directos en un mapa de color. En dicho mapa se almacenan los niveles de intensidad corres-pondientes a los colores primarios rojo, verde y azul. El mapa de color es una ma-triz de m x 3 en donde m es el número de colores existentes (Figura 2.3c).

• Imágenes RGB. Son imágenes en las que cada píxel está especificado por tres valores, cada uno definiendo la intensidad de rojo, verde y azul respectivamente. Se representan por arreglos 3D de m x n x 3. El número de colores posibles de-pende del número de bits que se emplee para representar los píxeles. Una imagen RGB de 24 bits puede representar hasta 16.7 millones de colores (Figura 2.3d).

Figura 2.3 Tipos de imagen: a) binaria, b) intensidad, c) indexada y d) RGB

2.3 Tipos de imagen y tipos de archivos 15

Las imágenes de intensidad son las que mayor se apegan al modelo de imagen presentado en la sección 2.1. Existen funciones definidas para la transformación entre los tipos de imágenes aquí mencionados. En adelante se hará énfasis en el procesamiento de imáge-nes de escala de grises, dando por entendido que el procesamiento de imágenes a color es similar una vez que se ha aplicado una de dichas transformaciones o se procesan por se-parado los planos de imágenes RGB tomando a cada plano de color como una imagen de intensidad.

Actualmente existe una gran variedad en formatos de almacenamiento para archivos de imagen, lo cual se debe mayormente a las técnicas de muestreo y cuantificación utiliza-das. El tipo de formato depende principalmente de las aplicaciones en las se usarán las imágenes y en menor medida a la diversidad de marcas creadoras de productos multime-dia. Por ejemplo, algunos fabricantes de cámaras digitales como Casio® utilizan sus pro-pios formatos de almacenamiento de imagen. Algunos de los tipos de archivos más po-pulares son:

• TIFF (Tagged Image File Format) con compresión CCITT Fax 4: Es utilizado generalmente para documentos de texto de un bit de profundidad (imagen bina-ria). Puede proveer un alto nivel de detalle junto con un tamaño de archivo pe-queño.

• TIFF con compresión LZW: Es un formato de compresión de 24 bits libre de pérdidas, es usado comúnmente por Photoshop® de Adobe® y algunos otros editores de imágenes. Se puede utilizar para almacenar tanto imágenes de inten-sidad (escala de grises) como imágenes RGB.

• JPEG (Joint Photographic Experts Group): Es un formato de compresión de 24 bits que generalmente presenta pérdidas de información. Es soportado por la ma-yoría de las plataformas computacionales. La compresión permite tener archivos de menor tamaño con una calidad aceptable para muchas aplicaciones.

• GIF (Graphic Image Format o Graphic Interchange Format): Es un formato de 8 bits que utiliza compresión sin pérdidas adecuado para desplegar en archivos o pantallas de baja resolución.

• PNG (Portable Network Graphic): Es un formato que espera proveer un reem-plazo de alta calidad para los archivos GIF, especialmente para imágenes usadas en la World Wide Web. Ofrece una compresión sin pérdidas que permite tamaños de archivo menores a los del formato GIF.

• BMP (Windows/OS2 BitMaP): Es un formato que permite varias profundidades de bits y varios tipos de compresión, usualmente utiliza 24 bits y ninguna com-presión, es el formato nativo para el entorno Windows.

16 Capítulo 2. Procesamiento de imágenes

2.4 Mapeo de intensidad

La representación interna de una imagen digital es simplemente una matriz de números que representan valores de color o escala de grises. Sin embargo, cuando una imagen se despliega en un monitor de computadora, generalmente no se observa un mapeo directo de la imagen. La imagen se pasa primero por una tabla de correspondencia o LUT por sus siglas en inglés (LookUpTtable), la cual mapea los valores de intensidad hacia valores más luminosos u oscuros. Si la tabla de correspondencia es lineal con pendiente unitaria y cruza por cero (Figura 2.4a), entonces la imagen se mapea directamente al dispositivo de despliegue, de otra forma, la imagen desplegada no corresponderá a una representación exacta de la imagen subyacente.

Se puede lograr una gran variedad de efectos visuales simplemente manipulando la repre-sentación funcional de la tabla de correspondencia. La forma funcional de una LUT (li-neal) puede considerarse como la ecuación de la recta:

( )g u cu b= + (2.2)

Donde u corresponde a los niveles de intensidad de cada punto, c y b son constantes.

a) Directa b) Brillo c) Contraste

Figura 2.4 Tablas de correspondecia

2.4.1 Brillo y contraste

Quizá la forma más común de manipulación de la LUT es el control de brillo. Este con-trol se logra fácilmente modificando el valor de b en la ecuación (2.2) oscureciendo la imagen para b<0 y abrillantándola con b>0. Es decir, el control de brillo se consigue mo-dificando el valor de la ordenada al origen de la ecuación funcional de la LUT. Para estos efectos, el valor de c es igual a uno. La Figura 2.5 presenta el efecto de control de brillo sobre una imagen, la forma de LUT correspondiente se muestra en la Figura 2.4b.

a) Original (b=0,c=1) b) Brillante (b>0) c) Oscuro (b<0)

Figura 2.5 Manipulación de Brillo (ordenada al origen)

2.4 Mapeo de intensidad 17

De forma análoga, se puede realizar un control de contraste modificando el valor del pa-rámetro c en la ecuación (2.2) y asignando a b el valor de cero. Esto modificará la pen-diente de la LUT incrementando el contraste cuando c>1 y disminuyéndolo para c<1. La Figura 2.6 presenta el efecto de manipulación del contraste sobre la misma imagen del revólver y su LUT correspondiente a cada caso de la Figura 2.4c.

a) Alto (c>1) b) Bajo (c<1)

Figura 2.6 Manipulación de contraste (pendiente)

Se pueden hacer combinaciones de ajuste de brillo y contraste variando c y b al mismo tiempo o realizar uno de los ajustes usando una LUT y posteriormente mapear usando otra LUT para combinar los efectos.

2.4.2 Corrección de gamma

Generalmente las imágenes de alto contraste son más agradables a la vista. Sin embargo, el realce lineal de contraste descrito arriba tiene el inconveniente de caer en saturación en los límites del rango de intensidad. Esto se puede evitar si se emplea un tipo de manipu-lación que no sea lineal. El enfoque más usado es la corrección de gamma en el que la forma funcional de la LUT es:

( )g u uγ= (2.3)

Donde una γ>1 incrementa el contraste y una γ<1 lo reduce. La Figura 2.7 muestra la imagen del revólver mapeada bajo este nuevo enfoque y su respectiva LUT. Puede no-tarse que la LUT no presenta saturación en los límites por lo que se resuelve el problema de las manipulaciones lineales.

a) Alto b) LUT Gamma c) Bajo

Figura 2.7 Corrección de gamma

La corrección de gamma se usa ampliamente en gran variedad de dispositivos dado que presenta resultados razonables y es fácil de parametrizar. Una desventaja de esta técnica es que los valores de intensidad quedan mapeados de una forma asimétrica con respecto

18 Capítulo 2. Procesamiento de imágenes

al nivel intermedio. Esto puede resolverse utilizando otro tipo de manipulación no lineal llamada sigmoidal que tiene la forma:

1( )

1 ug ueα β+=+

(2.4)

Este último tipo para mejora del contraste es menos recurrido dada la complejidad de su parametrización. La curva típica de este enfoque se muestra en la Figura 2.8, como puede apreciarse, la forma de onda presenta una manipulación simétrica con respecto al nivel de gris intermedio y tiene una forma serpenteante, de ahí el nombre de sigmoidal.

Figura 2.8 Ajuste sigmoidal de contraste

2.5 Filtrado espacial (bidimensional)

El empleo de máscaras especiales para el procesamiento de las imágenes se denomina frecuentemente filtrado espacial y las propias máscaras se denominan filtros espaciales. Las operaciones utilizando máscaras se basan en el concepto de vecindades deslizantes expuesto en la sección 2.2.2. El filtrado utilizando filtros espaciales consiste en sumar productos entre los coeficientes de la máscara y las intensidades de los píxeles bajo la máscara en un punto determinado de la imagen, a tal procedimiento se le conoce con el nombre de correlación espacial.

Los filtros espaciales no lineales operan también en base a vecindades. Sin embargo en general, su operación se basa directamente en los valores de los píxeles en el entorno en consideración y no emplean combinaciones lineales de los píxeles bajo la máscara. Por ejemplo, se puede realizar reducción de ruido con un filtro no lineal cuya función básica sea calcular el valor medio del nivel de gris en el entorno en el que se coloca el filtro, otros ejemplos incluyen el filtro de máximo, que se emplea para buscar los puntos más brillantes en una imagen y el filtro de mínimo que se emplea con el objetivo contrario.

2.5.1 Filtros suavizantes

Se emplean para hacer que la imagen parezca algo borrosa y también para reducir el ruido, esto es, se utiliza el procesado para lograr la pérdida de claridad de la imagen, a este proceso se le conoce como difuminado. Es útil que la imagen parezca un poco bo-rrosa en algunas etapas del procesado, como la eliminación de los pequeños detalles de una imagen antes de la extracción de un objeto y el relleno de pequeños espacios entre

2.5 Filtrado espacial (bidimensional) 19

líneas o curvas. La reducción del ruido puede realizarse mediante el aumento de la borro-sidad con un filtro lineal o también con un filtro no lineal.

Los filtros pasa bajas atenúan o eliminan las componentes de alta frecuencia en el domi-nio espectral, aunque éste es un tema del cual se hablará más adelante, es conveniente introducirlo aquí sin enfatizar en los conceptos. Las componentes de alta frecuencia ca-racterizan los bordes y los restantes detalles muy marcados de la imagen, por ello el efecto de introducir un filtrado pasa bajas es el de hacer borrosa la imagen. La Figura 2.1 presenta ejemplos del suavizado de imágenes mediante filtros espaciales.

La forma de la respuesta al impulso necesaria para implementar un filtro espacial pasa bajas (Figura 2.12) indica que el filtro ha de tener todos sus coeficientes positivos. Aun-que la forma de un filtro espacial pasa bajas pueda ser descrita, por ejemplo, por una fun-ción gaussiana, el requisito clave es que todos los coeficientes sean positivos. Para un filtro espacial de 3x3, la construcción más simple sería una máscara en la que todos los coeficientes fuesen iguales a uno. Sin embargo la respuesta sería, en este caso, la suma de los niveles de gris de los nueve píxeles bajo la máscara lo que podría hacer que el resul-tado se saliese del rango válido en la escala de grises. La solución a este problema de sa-turación consiste en cambiar la escala de la suma, dividiendo la máscara por una cons-tante de escalamiento.

a) Original b) Suavizado (lineal) c) Mediana (3x3)

Figura 2.9 Filtrado espacial suavizante

Cuando el objetivo del filtrado está más encaminado a la reducción del ruido que al di-fuminado, el empleo de los filtros de mediana presenta una buena alternativa. En este caso, el nivel de gris de cada píxel se reemplaza por la mediana de los niveles de gris de la vecindad. Este método es particularmente efectivo cuando el patrón de ruido consiste en componentes de área pequeña con valores altos de intensidad, y la característica que se desea conservar es la agudeza de los bordes. Este tipo de filtros son de naturaleza no li-neal, la Figura 2.9c presenta un ejemplo de filtrado usando esta técnica.

2.5.2 Filtros de realce

El objetivo principal del realce es el de destacar los detalles finos de una imagen o inten-sificar detalles que han sido difuminados, ya sea por error o bien por defecto natural del método de adquisición de la imagen. Las utilidades de realce de las imágenes son varia-

20 Capítulo 2. Procesamiento de imágenes

das e incluyen aplicaciones que van desde la impresión electrónica y las imágenes médi-cas hasta las inspecciones industriales e incluso la detección autónoma de objetivos en armas inteligentes.

Los filtros pasa altas atenúan o eliminan las componentes de baja frecuencia de la ima-gen, como estas componentes son responsables de las características lentamente variables de la imagen, el resultado neto de un filtrado pasa altas es la reducción de estas caracte-rísticas y, en correspondencia, una aparente agudización de los bordes y los restantes de-talles finos. La Figura 2.10 presenta ejemplos de este tipo de filtrado. El perfil de la res-puesta al impulso necesario para implementar un filtro espacial pasa altas (Figura 2.13) indica que el filtro debe tener coeficientes positivos cerca de su centro y coeficientes ne-gativos en la periferia. Para una máscara de 3x3 esta condición se cumple escogiendo un valor positivo en el centro y tomando coeficientes negativos en el resto de los elementos.

a) Original b) Realzado c) High Boost (A=5)

Figura 2.10 Filtrado espacial de realce

Este tipo de filtros tiende a hacer cero el nivel de gris medio (componente de CD), por lo que la imagen puede incluir niveles de gris negativos. Como se dijo antes, solo se deben considerar niveles de gris positivos, por lo que los resultados del filtrado pasa altas nece-sariamente implican alguna forma de desplazamiento o cambio de escala para que al final los niveles de gris queden en el intervalo [0, L-1] donde L es el número máximo de ni-veles de gris posibles de representar. El proceso de corrección de dicho efecto consiste en un simple ajuste de la LUT tal y como se describió en la sección 2.4.

Una imagen filtrada pasa altas puede obtenerse también como la diferencia entre la ima-gen original y una versión de esta imagen que ha pasado por un filtro pasa bajas, es decir: Pasa altas = Original – Pasa bajas. Multiplicando la imagen original por un factor de am-plificación A, se obtiene la definición de un filtro llamado high-boost o de énfasis de las frecuencias altas:

B

B( 1)

hb P

P

I AI I

A I I I

= −

= − + −( 1)

PAI

PAA I I= − + (2.5)

Donde I es la imagen original, Ihb la imagen filtrada high-boost, IPB la imagen filtrada pasa bajas e IPA la imagen filtrada pasa altas. Un valor de A=1 da el resultado de un filtro

2.6 Filtrado en el dominio de la frecuencia 21

pasa altas normal, mientras que para A>1 parte del original se añade al resultado del filtro pasa altas, lo que devuelve parcialmente las componentes de bajas frecuencias perdidas en el proceso de filtrado. El resultado es que la imagen high-boost se parece más a la imagen original, con un grado relativo de mejora de los bordes que depende de A. La Figura 2.10c muestra un ejemplo de este tipo de filtrado.

2.6 Filtrado en el dominio de la frecuencia

Los principios de mejora en el dominio de la frecuencia son claros, simplemente se trata de calcular la transformada de Fourier de la imagen a intensificar, multiplicar el resultado por la función de transferencia de un filtro y finalmente tomar la transformada de Fourier inversa para llegar a una imagen mejorada.

Las ideas de pérdida de nitidez por reducción de contenido de altas frecuencias o de me-jor definición incrementando la magnitud de las componentes de alta frecuencia en rela-ción con las de baja frecuencia proceden de conceptos directamente relacionados con la transformada de Fourier. De hecho, la idea del filtrado lineal es bastante más atractiva e intuitiva en el dominio de la frecuencia. En la práctica, las pequeñas máscaras espaciales son más empleadas que las transformaciones en la frecuencia debido a su facilidad de implementación y su velocidad de operación. Sin embargo, es esencial la comprensión de los conceptos en el dominio de la frecuencia para solucionar muchos de los problemas que no pueden resolverse con técnicas espaciales.

2.6.1 Transformada de Fourier

La representación matemática más común de una imagen es una función de dos variables espaciales: f(x,y). El valor de la función en determinada posición (x,y) representa la inten-sidad de la imagen en ese punto. El término transformada se refiere a una representación matemática alternativa de una imagen. La transformada de Fourier es una representación de una imagen como una suma de funciones exponenciales complejas con magnitudes, frecuencias y fases variables.

A diferencia de las señales en el tiempo, la transformada de Fourier de una imagen no proporciona información gráfica contundente para entender la naturaleza de la imagen. Por el contrario, la mayor parte de la información acerca de una imagen la proporciona su simple visualización junto con la caracterización estadística de sus niveles de intensidad (histograma). El histograma de una imagen es una gráfica donde se despliegan los niveles de intensidad de la imagen contra el número de ocurrencias (píxeles) que presenta cada nivel de intensidad.

La Figura 2.11 muestra una imagen junto con su histograma y la representación logarít-mica como imagen de su transformada de Fourier (magnitud, las coordenadas las fre-cuencias 0,0 corresponden al centro de la imagen). Como puede observarse, resulta más

22 Capítulo 2. Procesamiento de imágenes

complicado interpretar las gráficas en el dominio de la frecuencia que comprender vi-sualmente la información contenida en la imagen e interpretar su histograma.

A pesar de la dificultad inherente para interpretar la información gráfica de la transfor-mada de Fourier bidimensional se pueden aprovechar las ventajas que representa procesar información en un dominio alternativo, por ejemplo, aprovechar que la multiplicación de dos señales en el dominio de la frecuencia equivale a la convolución en el dominio espa-cial haciendo con esto más sencillo el filtrado. Esta transformación juega un papel crítico en un amplio rango de aplicaciones del procesamiento de imagen, incluyendo realce, análisis, restauración y compresión.

a) Imagen b) Espectro (magnitud) c) Histograma

Figura 2.11 Representaciones de imagen

Para propósitos computacionales, se utiliza la forma discreta de la transformada de Fou-rier (DFT). La DFT se define usualmente para una función discreta f(m,n) la cual es dife-rente de cero en la región finita 0 ≤ m ≤ M-1 y 0 ≤ n ≤ N-1. La DFT bidimensional de M por N y su inversa están dadas por:

1 1

(2 / ) (2 / )

0 0( , ) ( , )

M Nj M pm j N qn

m nF p q f m n e eπ π

− −− −

= == ∑∑ (2.6)

1 1

(2 / ) (2 / )

0 0

1( , ) ( , )

M Nj M pm j N qn

p qf m n F p q e e

MNπ π

− −

= == ∑∑ (2.7)

Donde m, n son coordenadas espaciales discretas y p, q son coordenadas en el dominio discreto de la frecuencia.

Los valores para F(p,q) son los coeficientes de la DFT de f(m,n). El coeficiente F(0,0) es llamado componente de CD. Existen algoritmos computacionales que realizan el cálculo de la DFT bajo diferentes consideraciones, el más utilizado es un algoritmo llamado Transformada Rápida de Fourier o FFT por sus siglas en inglés. La FFT tiene la caracte-rística de desempeñarse de manera más eficiente cuando las dimensiones de la señal (número de muestras en cada dimensión) son potencias enteras de dos.

2.6 Filtrado en el dominio de la frecuencia 23

2.6.2 Filtrado pasa bajas

Como se dijo anteriormente, los bordes y otras transiciones bruscas (como el ruido) en los niveles de gris de una imagen contribuyen significativamente al contenido en altas frecuencias de su transformada de Fourier. Por lo tanto, el difuminado (suavizado) se consigue, en el dominio de la frecuencia, a base de atenuar un rango específico de com-ponentes de alta frecuencia en la transformada de una imagen dada.

La principal dificultad radica en seleccionar una función de transferencia del filtro que realice dichas operaciones. A continuación se considerarán funciones de transferencia que actúen exactamente de igual forma sobre las partes real e imaginaria de la transfor-mada de Fourier de la imagen, a este tipo de filtros se les denomina como filtros de cam-bio de fase nulo, pues no alteran la fase de la transformada.

Un filtro pasa bajas bidimensional ideal es aquel cuya función de transferencia verifica la relación:

0

0

1 ( , )( , )

0 ( , )

si D u v DH u v

si D u v D

⎧ ≤⎪⎪⎪= ⎨⎪ >⎪⎪⎩ (2.8)

Donde D0 es una cantidad especificada no negativa, y D(u,v) es la distancia desde el punto (u,v) al origen de coordenadas en el plano generado por las frecuencias u y v, es

decir: ( )1/22 2( , )D u v u v= + .

El nombre de filtro ideal indica que todas las frecuencias dentro de un círculo de radio D0 pasan sin atenuación, mientras que todas las frecuencias fuera de este círculo quedan completamente atenuadas. Para filtros con simetría radial alrededor del origen es sufi-ciente especificar su sección transversal en términos de una función de la distancia al ori-gen según una dirección radial, entonces, la función de transferencia puede generarse gi-rando esta sección transversal 360° alrededor del origen, la Figura 2.12 muestra una vista en perspectiva de un filtro ideal además de una sección transversal de éste.

La sección transversal de un filtro pasa bajas está caracterizada por su frecuencia de corte, que es el punto de transición en donde H(u,v) pasa de uno a cero.

Figura 2.12 Filtro ideal pasa bajas

24 Capítulo 2. Procesamiento de imágenes

2.6.3 Filtrado pasa altas

Dado que los bordes y demás cambios bruscos de los niveles de gris están relacionados con los componentes de alta frecuencia, se puede lograr un realce de la imagen efec-tuando un filtrado pasa altas en el dominio de la frecuencia, que atenúe las componentes de baja frecuencia sin modificar la información de la transformada de Fourier contenida en las componentes de alta frecuencia. Un filtro bidimensional pasa altas ideal se caracte-riza por una función de transferencia que verifica la relación:

0

0

0 ( , )( , )

1 ( , )

si D u v DH u v

si D u v D

⎧ ≤⎪⎪⎪= ⎨⎪ >⎪⎪⎩ (2.9)

Donde D0 es la distancia de corte medida desde el origen del plano de frecuencias y D(u,v) viene dado por ( )1/2

2 2( , )D u v u v= + . La Figura 2.13 muestra una perspectiva del filtro pasa altas ideal, así como su sección transversal. Este filtro es opuesto al filtro pasa bajas ideal mostrado en la Figura 2.12 puesto que atenúa las frecuencias que quedan dentro del círculo de radio D0 y a la vez que deja pasar sin atenuación todas las frecuen-cias que quedan fuera de este círculo. Para los dos casos, pasa altas y pasa bajas, un filtro ideal no es realizable físicamente. Se pueden diseñar secciones transversales de filtros pasa altas bidimensionales a través del diseño de filtros unidimensionales.

Figura 2.13 Filtro ideal pasa altas

2.6.4 Filtrado homo-mórfico

Volviendo al modelo iluminación-reflectancia presentado en la sección 2.1, puede dedu-cirse de él un procedimiento en el dominio de la frecuencia que es útil para mejorar la apariencia de una imagen a través de la compresión del rango de brillos y de la mejora del contraste, realizadas simultáneamente.

La ecuación (2.1) no puede emplearse directamente para operar por separado en las componentes de frecuencia de la iluminación y reflectancia debido a que la transformada de Fourier para producto de dos funciones no es separable.

Este método está basado en una clase particular de sistemas conocidos con el nombre de homo-mórficos. La clave consiste en que la separación de las componentes de ilumina-ción y reflectancia se logra al calcular el logaritmo natural de la imagen y transformarlo

2.6 Filtrado en el dominio de la frecuencia 25

al dominio de la frecuencia, de manera que la función del filtro homo-mórfico puede ope-rar separadamente sobre estas componentes.

El método aparece resumido en la Figura 2.14. Las funciones H1(x,y) y H2(x,y) son filtros pasa bajas y pasa altas ideales respectivamente. La componente de iluminación de una imagen se caracteriza generalmente por variaciones espaciales lentas, mientras que la componente de reflectancia tiende a variar bruscamente, en especial en las uniones entre objetos distintos. Estas características, llevan a asociar las componentes de baja frecuen-cia de la transformada de Fourier del logaritmo de una imagen con la iluminación y las componentes de alta frecuencia con la reflectancia. Aunque estas aproximaciones no son muy exactas, pueden emplearse para ayudar a la mejora de la imagen.

Figura 2.14 Proceso de filtrado homo-mórfico

A través del filtrado homo-mórfico puede ganarse control sobre las componentes de ilu-minación y reflectancia, lo cual requiere que la especificación de las funciones de filtrado H1 y H2 afecten de forma distinta las componentes de la transformada de Fourier de bajas y altas frecuencias, la Figura 2.15 presenta un ejemplo de filtrado bajo esta técnica.

a) Original b) Filtrada

Figura 2.15 Filtrado homo-mórfico

Como puede observarse, la imagen en la Figura 2.15b revela información del exterior a la ventana que no era posible distinguir en la imagen original, además de mantener los ni-veles de intensidad en la parte más brillante de la imagen (marco de la ventana).

26 Capítulo 2. Procesamiento de imágenes

2.7 Resumen

En este capítulo se han presentado de manera general pero ilustrativa los conceptos bási-cos del procesamiento digital de imágenes. Se comenzó por describir las formas de repre-sentación de las imágenes así como las principales características de la información que puede componerlas y operaciones que se pueden realizar sobre éstas. Se introdujeron después algunas técnicas para la mejora del brillo y el contraste que se utilizan común-mente previo al procesamiento de la información contenida en la imagen de las que puede destacarse la técnica de corrección de gamma, de esta técnica se seguirá hablando ya que más adelante (secciones 4.1.2, 5.5.1) se presenta una aplicación relacionada con ella.

Posteriormente se introdujeron y ejemplificaron técnicas para el filtrado de imágenes tanto en el dominio espacial como en el dominio de la frecuencia, destacando que este último no es de gran utilidad si se requiere analizar la información contenida en la ima-gen pero que las técnicas de filtrado y procesamiento que son inherentes a éste si son de gran utilidad y practicidad. Este capítulo sienta las bases del procesamiento de imágenes dando lugar a la descripción de las técnicas más específicas que se utilizarán para pro-yectar nuevas aplicaciones.

Cabe mencionar que todas las imágenes presentadas en este y los siguientes capítulos son originales de este trabajo. Todos los dibujos y diagramas fueron realizados por el autor y todas las fotografías tomadas por el mismo.

27

3. Biespectro

Entre las técnicas más utilizadas en el procesamiento digital de señales se en-cuentra el análisis espectral, el cual toma ventaja de algoritmos como la FFT, convolución en frecuencia, el desarrollo de filtros digitales y funciones espectrales. Los Poliespectros son funciones espectrales que se originan con la transformación al dominio de la frecuencia de estadísticas de alto orden. El Biespectro es un Po-liespectro de tercer orden que presenta características favorables para el proce-samiento y análisis de señales digitales. El Biespectro ha sido usado en una amplia gama de aplicaciones como son: la de-tección de periodicidades, detección de acoplamientos cuadráticos en corrientes oceánicas, detección de no linealidades, identificación de sistemas, procesamiento de imágenes, entre otras. En el capítulo anterior se presentó un panorama general sobre el procesamiento digital de imágenes en donde se establecieron conceptos básicos así como técnicas convencionales para el procesamiento. Además se destacó la importancia del uso de técnicas en el dominio de la frecuencia. El interés por usar el Biespectro en la reconstrucción de imágenes está motivado por el hecho de que el Biespectro de una imagen contiene información referente a la fase de su espectro y teóricamente es inmune a procesos gaussianos además de tener propiedades de invariancia a desplazamientos en el dominio del tiempo. El presente capítulo presenta conceptos básicos sobre el origen de funciones polies-pectrales y extiende el estudio a la obtención del Biespectro de señales bidimen-sionales estableciendo algunas relaciones entre Biespectro e imagen. Además se introduce el concepto de reconstrucción para señales bidimensionales y se descri-ben los problemas e implicaciones que esto representa.

3.1 Estadísticas de alto orden

Existen cierto tipo de fenómenos físicos en donde pueden predecirse registros específicos de mediciones futuras en el tiempo. Dichas predicciones pueden ser de exactitud razona-ble en base solo a conocimientos físicos del comportamiento del fenómeno y a observa-ciones previas de resultados experimentales. Tales fenómenos son conocidos como “de-terminísticos”.

Gran parte de los fenómenos físicos no son determinísticos, esto es, cada experimenta-ción produce registros únicos en el tiempo que posiblemente jamás se repitan, por lo que no es posible hacer predicciones acertadas para valores específicos en un instante de

28 Capítulo 3. Biespectro

tiempo futuro. A los registros obtenidos a partir de la experimentación y los fenómenos que éstos representan, se les conoce como “aleatorios”.

En procesos aleatorios en los que un registro de tiempo corresponde a una realización independiente y el proceso se define por una serie de realizaciones, se puede presentar el caso en que las estadísticas de todas las realizaciones en un mismo instante de tiempo sean casi iguales a las obtenidas en una sola realización para todo tiempo. A este tipo de procesos se les conoce como “ergódicos”.

La caracterización estadística completa de una variable o proceso aleatorio requiere que sea posible determinar la probabilidad de cualquier evento que se defina en su espacio muestra. Sin embargo, una caracterización completa podría no ser necesaria si el com-portamiento promedio del proceso aleatorio es conocido.

3.1.1 Momentos

Dada cualquier función g(x) (con un solo valor para cada x), se define el valor esperado de g(x) como:

[ ]( ) ( ) ( )E g x g x f x dx∞

−∞

= ∫ (3.1)

Donde f(x) es la función de densidad de probabilidad de x. La operación E[·] se conoce como valor esperado o expectación, la cual es lineal por lo que: E[g(x) + h(x)] = E[g(x)] + h(x)] y E[c·g(x)] = c·E[g(x)], siendo c una constante.

Los momentos de un proceso aleatorio estacionario x(t) representando un fenómeno físico de interés están definidos como [2]:

( ) ( ) [ ( )]k kkm E x t x t p x t dt

−∞

⎡ ⎤= =⎣ ⎦ ∫ (3.2)

Donde p[x(t)] es la función de probabilidad de x(t) y mk es llamado el k-ésimo mo-mento o momento de orden k. El momento de primer orden de un proceso aleatorio esta-cionario es la media (i.e. µx=E[x])

Para una variable aleatoria discreta x(n), se define el momento de orden k como:

( ) ( ) [ ( )]k kk

nm E x n x n p x n

=−∞⎡ ⎤= =⎣ ⎦ ∑ (3.3)

Cuando se involucran dos o más variables aleatorias, se pueden calcular momentos con-juntos de la siguiente manera:

1 21, 2 1 2[ ( ) ( )]k k

k km E x n x n= (3.4)

3.1 Estadísticas de alto orden 29

Donde x1(n) y x2(n) son variables aleatorias discretas y la suma de k1 con k2 es el orden del momento.

Para un proceso aleatorio discreto x(n), con n = 0, 1, 2, 3,…N-1 se puede definir el momento de orden k como el momento conjunto de orden k de las variables aleatorias discretas x(n), x(n+τ1), x(n+τ2),…, x(n+τk-1), donde τ1, τ2,…, τk-1 son desplazamientos de tiempo discreto a partir de n, entonces:

, 1 1 1 2 1( ,.. ) [ ( ) ( ) ( )... ( )]k x k km E x n x n x n x nτ τ τ τ τ− −= + + + (3.5)

La función de auto correlación de un proceso real estacionario x(n) es un momento con-junto que se define como:

( ) [ ( ) ( )]xxR E x n x nτ τ= + (3.6)

Los momentos de orden mayor a dos son generalizaciones de la secuencia de auto corre-lación, existen combinaciones no lineales específicas de dichos momentos a las cuales se les conoce con el nombre de cumulantes. Se introduce ahora el término cumulante, que se refiere a momentos acumulados.

3.1.2 Cumulantes

Sean los conjuntos V=v1, v2,…, vn y X=x1, x2,…, xn donde x1, x2,…, xn denota una colección de n variables aleatorias. Los cumulantes de orden n son definidos como los coeficientes v1, v2,…, vn en la expansión por Series de Taylor de la función generadora de cumulantes [2]:

'( ) ln [ ]jv xK v E e= (3.7)

El cumulante conjunto de orden k de k variables aleatorias puede calcularse a partir de los momentos conjuntos, por ejemplo, para las variables x1 y x2 el cumulante conjunto de segundo orden es

1 22, , 1 2 1 2[ ] [ ] [ ]x xc E x x E x E x= − .

Sea x(n) un proceso aleatorio discreto, para n = 0, 1, 2, 3,…N-1. El cumulante de orden k del proceso puede definirse como el cumulante conjunto de orden k de las variables aleatorias discretas x(n), x(n+τ1), x(n+τ2),…, x(n+τk-1), donde τ1, τ2,…, τk-1 son despla-zamientos de tiempo discreto a partir de n, entonces:

, 1 1 1 2 1( ,.. ) [ ( ), ( ), ( ),... ( )]k x k kc cum x n x n x n x nτ τ τ τ τ− −= + + + (3.8)

El cumulante de primer orden de un proceso estacionario, es la media, esto es: c1x=E[x]. Los cumulantes de órdenes superiores son invariantes a corrimientos en la media, por lo que resulta más simple definirlos asumiendo que la media es cero. Si el proceso no tiene media cero, se le sustrae y entonces se aplican las definiciones simplificadas al proceso resultante. Los cumulantes de segundo, tercero y cuarto orden de un proceso aleatorio, estacionario de media cero se definen como:

30 Capítulo 3. Biespectro

2 ( ) [ ( ) ( )]xc E x n x nτ τ= + (3.9)

3 1 2 1 2( , ) [ ( ) ( ) ( )]xc E x n x n x nτ τ τ τ= + + (3.10)

4 1 2 3 1 2 3

1 2 3

2 1 3

3 1 2

( , , ) [ ( ) ( ) ( ) ( )][ ( ) ( )] [ ( ) ( )][ ( ) ( )] [ ( ) ( )][ ( ) ( )] [ ( ) ( )]

xc E x n x n x n x nE x n x n E x n x nE x n x n E x n x nE x n x n E x n x n

τ τ τ τ τ ττ τ ττ τ ττ τ τ

= + + +− + + +− + + +− + + +

(3.11)

Para procesos aleatorios en el dominio complejo, los cumulantes se definen con relacio-nes similares con la diferencia de que algunos de los términos aparecen como conjuga-dos, por ejemplo para el proceso complejo de media cero x(n), el cumulante de orden dos se define como: 2 ( ) [ *( ) ( )]xc E x n x nτ τ= + .

3.1.3 Relación entre momentos y cumulantes

Sea X=x1, x2,…, xn una colección de variables aleatorias e I = 1,2,…,n el conjunto de índices de los componentes de X. Si XI I⊆ , entonces xI es el sub-vector de X con índi-ces pertenecientes a I. Sea la partición de I en una colección no ordenada de conjuntos no vacíos, no intersectantes, denotada Ip, tal que todos los subconjuntos Ip formen el conjunto I. Se denota al momento y al cumulante de xI como mx(I) y cx(I) respectiva-mente. Donde el momento de xI se define como el valor esperado de los elementos de los sub-vectores formados, es decir, mx(I) = E[xI]. Las relaciones entre momentos y cumu-lantes están dadas por [2]:

Fórmula momento cumulante:

1

1

1( ) ( 1) ( 1)! ( )

qpp

qq

x x ppU I I

c I q m I=

=== − −∑ ∏ (3.12)

Fórmula cumulante momento:

1 1

( ) ( )q

pp

q

x x ppU I I

m I c I= ==

= ∑ ∏ (3.13)

Donde:1

qppU I I= =

∑ es la sumatoria de todas las particiones de I; 1

q

p=∏ es el producto de

elementos desde p hasta q; q es el número de subconjuntos del vector X, p es el índice de subconjuntos del vector X, mx(·) es el momento de primer orden y cx(·) es el cumulante de primer orden.

Con el objeto de tener una buena comprensión de las relaciones entre momentos y cu-mulantes, se encontraron los cumulantes hasta orden 4 de un conjunto de variables alea-torias x1, x2, x3, x4 utilizando la fórmula momento-cumulante, también se realizó la ope-ración inversa usando la fórmula correspondiente a manera de comprobación.

3.1 Estadísticas de alto orden 31

Los cumulantes de orden 2, 3 y 4 del proceso aleatorio x(n) en función de sus momentos conjuntos son los siguientes:

2, ( ) [ ( ) ( )] [ ( )] [ ( )]xc E x n x n E x n E x nτ τ τ= + − + (3.14)

3, 1 2 1 2

1 2

2 1

1 2

1 2

( , ) [ ( ) ( ) ( )][ ( ) ( )] [ ( )][ ( ) ( )] [ ( )][ ( ) ( )] [ ( )]

2 [ ( )] [ ( )] [ ( )]

xc E x n x n x nE x n x n E x nE x n x n E x nE x n x n E x nE x n E x n E x n

τ τ τ ττ ττ τ

τ ττ τ

= + ++ + +− + +− + ++ + +

(3.15)

4, 1 2 3 1 2 3

1 2 3

1 2 3

2 1 3

3 1 2

1 2

( , , ) [ ( ) ( ) ( ) ( )][ ( )] [ ( ) ( ) ( )][ ( )] [ ( ) ( ) ( )][ ( )] [ ( ) ( ) ( )][ ( )] [ ( ) ( ) ( )][ ( ) ( )] [ ( ) (

xc E x n x n x n x nE x n E x n x n x nE x n E x n x n x nE x n E x n x n x nE x n E x n x n x nE x n x n E x n x n

τ τ τ τ τ ττ τ τ

τ τ ττ τ ττ τ τ

τ τ τ

= + + +− + + +− + + +− + + +− + + +− + + + 3

2 1 3

3 1 2

1 2 3

2 1 3

3 1 2

1 2

)][ ( ) ( )] [ ( ) ( )][ ( ) ( )] [ ( ) ( )]

2 [ ( )] [ ( )] [ ( ) ( )]2 [ ( )] [ ( )] [ ( ) ( )]2 [ ( )] [ ( )] [ ( ) ( )]2 [ ( )] [ ( )] [

E x n x n E x n x nE x n x n E x n x nE x n E x n E x n x nE x n E x n E x n x nE x n E x n E x n x nE x n E x n E x

τ τ ττ τ τ

τ τ ττ τ ττ τ τ

τ τ

− + + +− + + ++ + + ++ + + ++ + + ++ + + 3

1 3 2

2 3 1

1 2 3

( ) ( )]2 [ ( )] [ ( )] [ ( ) ( )]2 [ ( )] [ ( )] [ ( ) ( )]6 [ ( )] [ ( )] [ ( )] [ ( )]

n x nE x n E x n E x n x nE x n E x n E x n x nE x n E x n E x n E x n

ττ τ ττ τ τ

τ τ τ

++ + + ++ + + +− + + +

(3.16)

Cuando se trabaja con procesos de media cero, el cálculo de los cumulantes se simplifica ya que los momentos de primer orden arrojan productos nulos. Las ecuaciones (3.9), (3.10) y (3.11) muestran los cumulantes simplificados (media cero) de órdenes 2, 3 y 4 respectivamente. En la práctica suele removerse previamente la media de las señales para utilizar las relaciones simplificadas.

Además de la simplicidad que proporciona el trabajar con procesos de media cero, tam-bién se pueden encontrar relaciones de simetría que facilitan el cálculo de cumulantes.

Para cumulantes de segundo y tercer orden respectivamente se tienen las siguientes equi-valencias:

2 2( ) ( )x xc cτ τ= − (3.17)

32 Capítulo 3. Biespectro

3 1 2 3 2 1

3 1 2 1

3 1 2 2

3 2 1 1

3 2 1 2

( , ) ( , ) ( , ) ( , ) ( , ) ( , )

x x

x

x

x

x

c ccccc

τ τ τ ττ τ τ

τ τ ττ τ ττ τ τ

== − −= − −= − −= − −

(3.18)

La Figura 3.1 muestra las regiones de simetría para cumulantes de tercer orden.

Figura 3.1 Regiones de soporte para cumulantes de orden tres

Como consecuencia de la simetría, conocer tan solo los cumulantes en cualquiera de las seis regiones de la Figura 3.1 permite conocer los cumulantes de las regiones restantes. Dichas regiones también incluyen los correspondientes bordes, por ejemplo, la región sombreada (región 1) comprende los valores limitados por τ1=0 y τ1=τ2 con τ1,τ2≥0. Dado que en la práctica se trabaja con procesos estacionarios causales, la región que se utiliza para el cálculo de los cumulantes es la región sombreada.

Los momentos y cumulantes de órdenes superiores a dos son conocidos como “Estadísti-cas de alto orden” y éstos dan origen a los espectros de alto orden o Poliespectros.

3.2 Poliespectros

Cuando se requiere conocer las características de una señal con respecto a su comporta-miento en frecuencia, es de gran utilidad contar con una representación alternativa ya que en el dominio del tiempo dichas características no son evidentes. El espectro de una señal representa las características de su comportamiento en el dominio de la frecuencia.

Las propiedades espectrales de una señal pueden ser desenmascaradas aplicando la trans-formada de Fourier. Para una señal en tiempo discreto x(nT), la Transformada Discreta de Fourier (DFT) X(k) de x(nT) está definida por:

1

2

0( ) ( ) para 0,1,2,... 1.

N kj nN

nX k x nT e k N

π−

== = −∑ (3.19)

Donde N es el número de muestras de la señal. Para procesos aleatorios, una transforma-ción directa no siempre es adecuada y en algunos casos podría no existir, por ese motivo

3.2 Poliespectros 33

se busca obtener una representación espectral de la potencia de la señal. Una representa-ción espectral puede obtenerse a partir de la transformada de Fourier de funciones en el dominio del tiempo tales como momentos y cumulantes.

Las técnicas para la estimación de los Poliespectros caen en tres grandes grupos: Los métodos no paramétricos o convencionales basados en datos de un proceso, los métodos paramétricos o basados en modelos y los métodos basados en criterio. A partir de aquí, solo se abordarán los métodos no-paramétricos y éstos a su vez, incluyen dos clases de métodos: los directos, que están basados en la transformada de Fourier de los datos; y los indirectos, que se basan en la transformada de Fourier de los cumulantes o momentos.

Si el cumulante es absolutamente sumable, se define el Poliespectro de orden n como la transformada de Fourier (n-1)-dimensional de los cumulantes de orden n y se denota como [2]:

1 1

1

1 2 1 , 1 2 11

( , ... ) ..... ( , ... )exp 2n

ni i

nx n n x ni

kC k k k c j

Nτ τ

ττ τ τ π= −

∞ ∞ −

− −−∞ =−∞ =

⎡ ⎤⎢ ⎥= −⎢ ⎥⎣ ⎦

∑ ∑ ∑ (3.20)

3.2.1 Densidad espectral de potencia

Sustituyendo n=2 en la ecuación (3.20), se obtiene el Poliespectro de orden dos:

2,2( ) ( )expx

kC k c jNτ

π ττ=

−∞

⎡ ⎤= −⎢ ⎥⎣ ⎦∑ (3.21)

A la ecuación (3.21) se le conoce como función de densidad espectral de potencia (PSD). La densidad espectral de potencia es una transformación lineal que, en términos físicos, representa la distribución de potencia de la señal en las diferentes frecuencias que la componen. Si el proceso que se analiza es de media cero, el cumulante de orden dos es equivalente al momento conjunto del mismo orden, que no es más que la secuencia de auto correlación mostrada en (3.6) y se puede escribir como:

2 2( ) ( )exp [ ( ) ( )]expxxk kP k R j E x t x t j

N Nτ τ

π τ π ττ τ∞ ∞

=−∞ =−∞

⎡ ⎤ ⎡ ⎤= − = + −⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦∑ ∑ (3.22)

Una forma alternativa de calcular la densidad espectral de potencia de un proceso aleato-rio x(nT), puede definirse como:

*( ) ( ) ( )P k X k X k= (3.23)

Donde X(k) es la Transformada Discreta de Fourier (DFT) de x(nT) y X*(k) es su com-plejo conjugado. A esta ecuación se le conoce también con el nombre de “teorema de co-rrelación”.

34 Capítulo 3. Biespectro

En (3.23) puede verse que P(k) es resultado de un producto de números conjugados com-plejos, lo cual da como resultado una P(k) real y positiva. Adicionalmente, extendiendo la condición de simetría de la función de auto correlación (3.17) a la PSD, se tiene:

( ) ( ) ( ) 0P k P k y P k= − ≥ (3.24)

El espectro obtenido mediante la PSD no mantiene la información referente a la fase y no detecta acoplamientos armónicos de frecuencias (ciego a la fase), lo cual constituye una importante limitación en el análisis de sistemas no lineales o aquellos en los que se re-quiera la información de fase. Esta limitante puede evitarse usando espectros de ordenes mayores como son el Biespectro y el Triespectro, poliespectros de ordenes 3 y 4 respecti-vamente.

3.2.2 Biespectro

El Biespectro (BIS) es una función poliespectral de orden 3 que presenta ventajas sobre la PSD tales como: conservación de la fase, detección de acoplamientos armónicos, inva-rancia a corrimientos espaciales, “inmunidad” a procesos gausianos, entre otras. Por tales características y dado que es el Poliespectro de orden mayor a dos más sencillo de im-plementar, se ha escogido al Biespectro como herramienta de procesamiento y análisis para esta investigación.

Extendiendo la definición de Poliespectros en (3.20) a sistemas de tercer orden (n = 3), se obtiene la función biespectral la cual se define como:

( )

1 2

1 1 2 21 2 1 2 3, 1 2

2( , ) ( , ) ( , )expxk kB k k C k k c j

Nτ τ

π τ ττ τ=

∞ ∞

−∞ =−∞

+⎡ ⎤= = −⎢ ⎥⎢ ⎥⎣ ⎦∑ ∑ (3.25)

El Biespectro es una función compleja de dos índices de frecuencia que representa la contribución al producto medio de tres componentes de Fourier, donde una de las fre-cuencias equivale a la suma de las otras dos.

Al igual que la PSD, si se trabaja con procesos de media cero, el Biespectro puede cal-cularse en términos del momento de tercer orden quedando como:

( )

1 2

1 1 2 21 2 1 2

2( , ) [ ( ) ( ) ( )]exp k kB k k E x t x t x t jNτ τ

π τ ττ τ=

∞ ∞

−∞ =−∞

+⎡ ⎤= + + −⎢ ⎥⎢ ⎥⎣ ⎦∑ ∑ (3.26)

Análogo al teorema de correlación, el BIS también puede calcularse en función de la Transformada de Fourier del proceso de la siguiente forma (método directo):

*1 2 1 2 1 2( , ) ( ) ( ) ( )B k k X k X k X k k= + (3.27)

Dado que el Biespectro proviene de la transformada de Fourier de los cumulantes de ter-cer orden, también éste conserva propiedades de simetría similares. Adicionalmente, otras simetrías son generadas al combinar las ya mencionadas con las introducidas por la

3.3 Poliespectros de señales bidimensionales 35

transformación al dominio de la frecuencia. Esto es, transformando (3.18) al dominio de la frecuencia y tomando en cuenta que la transformada de Fourier tiene la propie-dad ( ) *( )X k X k= − , entonces se desprenden las siguientes equivalencias para el Biespec-tro:

* *1 2 2 1 1 2 2 1

*1 1 2 1 2 1 1 1 2

*1 2 1 2 1 2 1 2 2

* *2 1 2 1 2 2

( , ) ( , ) ( , ) ( , )

( , ) ( , ,) ( , )

( , ,) ( , ) ( , )

( , ) ( , )

B k k B k k B k k B k k

B k k k B k k k B k k k

B k k k B k k k B k k k

B k k k B k k k

= = − − = − −

= − − = − − = − +

= + − = − − = − −

= − + = + −

(3.28)

La Figura 3.2 muestra la región de soporte del Biespectro asumiendo una longitud N en la transformada de Fourier en los datos. Conociendo el Biespectro en la región triangu-lar 2 1 2 1 20, ,k k k k k π≥ ≥ + ≤ , (región 1 en la Figura 3.2), es suficiente para una descripción completa del mismo. Dicha simetría simplifica considerablemente el cálculo del BIS ya que solo se tiene que obtener la parte no redundante de la matriz biespectral.

Figura 3.2 Regiones de soporte para el Biespectro

3.3 Poliespectros de señales bidimensionales

De forma análoga a (3.6) se define la auto-correlación de una secuencia discreta bidimen-sional en el espacio (plano) discreto, x(m,n) como:

( , ) [ ( , ) ( , )]xx m n m nR E x m n x m nτ τ τ τ= + + (3.29)

Donde mτ y nτ son desplazamientos con respecto a las coordenadas espaciales m y n, el término interior en el operador de expectación es un producto de elemento por elemento y no una multiplicación matricial [21].

Extendiendo la definición de cumulantes de segundo y tercer orden para señales unidi-mensionales, partiendo de la auto-correlación en dos dimensiones y asumiendo que ( , )x m n es de media cero se obtienen los cumulantes de orden dos y tres para señales bidi-

mensionales:

2, ( , ) [ ( , ) ( , )]x m n m nc E x m n x m nτ τ τ τ= + + (3.30)

36 Capítulo 3. Biespectro

3, 1 1 2 2 1 1 2 2( , , , ) [ ( , ) ( , ) ( , )]x m n m n m n m nc E x m n x m n x m nτ τ τ τ τ τ τ τ= + + + + (3.31)

Los cumulantes y Poliespectros para señales bidimensionales son siempre de dimensión mayor o igual a dos. En adelante se hará referencia a éstas como funciones “bidimensio-nales” indicando que se originan a partir de señales de dos dimensiones y no a la dimen-sión de la función en específico. Por ejemplo, se llamará “cumulante bidimensional” de tercer orden a la ecuación (3.31) aún cuando ésta sea en realidad de dimensión cuatro.

Se define el Poliespectro bidimensional de orden n como la transformada de Fourier de dimensión (2n-2) de los cumulantes bidimensionales de orden n. Así para la PSD resulta:

2,( , ) ( , )exp 2 ( )n m

m m n nm n x m n

k kP k k c jNτ τ

τ ττ τ π∞ ∞

=−∞ =−∞

+⎡ ⎤= −⎢ ⎥⎣ ⎦∑ ∑ (3.32)

Por el método directo:

( , ) ( , ) *( , )m n m n m nP k k X k k X k k= (3.33)

Para el Biespectro bidimensional (indirecto):

( )2 2 1 1

1 1 2 2

1 1 1 1 2 2 2 23, 1 1 2 2

( , , , )

( , , , )exp 2 ( )

n m n m

m n m n

m m n n m m n nx m n m n

B k k k k

k k k kc jN

τ τ τ ττ τ τ ττ τ τ τ π

∞ ∞ ∞ ∞

=−∞ =−∞ =−∞ =−∞=

+ + +⎡ ⎤−⎢ ⎥⎣ ⎦

∑ ∑ ∑ ∑ (3.34)

Por el método directo:

1 1 2 2 1 1 2 2 1 2 1 2( , , , ) ( , ) ( , ) *( , )m n m n m n m n m m n nB k k k k X k k X k k X k k k k= + + (3.35)

Análogamente a lo expuesto en las secciones 3.1.3 y 3.2.2, los cumulantes bidimensiona-les de tercer orden tienen las propiedades de simetría comprendidas por:

3, 1 1 2 2 3, 2 2 1 1

3, 2 1 2 1 1 1

3, 1 1 2 1 2 1

3, 1 2 1 2 2 2

3, 2 2 1 2 1 2

( , , , ) ( , , , )( , , , )( , , , )( , , , )( , , , )

x m n m n x m n m n

x m m n n m n

x m n m m n n

x m m n n m n

x m n m m n n

c ccccc

τ τ τ τ τ τ τ ττ τ τ τ τ ττ τ τ τ τ τ

τ τ τ τ τ ττ τ τ τ τ τ

== − − − −= − − − −= − − − −= − − − −

(3.36)

Para el Biespectro bidimensional, la obtención de regiones reducidas no es tan simple como para el caso unidimensional. Esto se debe principalmente a que el dominio de so-porte de esta función es cuatro-dimensional y no es posible identificar regiones reducidas a partir de una representación gráfica de ésta. De hecho, resulta particularmente compli-cado obtener una representación gráfica de una función de cuatro dimensiones y aún cuando esto pudiera lograrse, su interpretación seguiría siendo muy compleja.

Transformando (3.36) al dominio de la frecuencia se obtienen las siguientes relaciones de simetría para el Biespectro:

3.3 Poliespectros de señales bidimensionales 37

1 1 2 2 2 2 1 1

1 2 1 2 2 2

1 2 1 2 1 1

1 1 2 1 2 1

2 2 2 1 2 1

1 1 2 1 2 1

2 2 2

( , , , ) ( , , , )( , , , )( , , , )( , , , )( , , , )*( , , , )*( , ,

m n m n m n m n

m m n n m n

m m n n m n

m n m m n n

m n m m n n

m n m m n n

m n m

B k k k k B k k k kB k k k k k kB k k k k k kB k k k k k kB k k k k k kB k k k k k kB k k k

== − − − −= − − − −= − − − −= − − − −= − − + += − − 1 2 1

1 2 1 2 2 2

1 2 1 2 1 1

1 1 2 2

2 2 1 1

, )*( , , , )*( , , , )*( , , , )*( , , , )

m n n

m m n n m n

m m n n m n

m n m n

m n m n

k k kB k k k k k kB k k k k k kB k k k kB k k k k

+ += + + − −= + + − −= − − − −= − − − −

(3.37)

A pesar de las dificultades mencionadas para la representación gráfica del BIS bidimen-sional, se han encontrado representaciones gráficas alternativas que esquematizan alguna o algunas de las características del dominio de cuatro dimensiones de éste. El dominio de soporte de la función BIS para señales bidimensionales resulta del producto de los planos M y N mostrados en la Figura 3.3 produciendo un espacio de cuatro dimensiones.

a) Plano M b) Plano N

Figura 3.3 Región de soporte del Biespectro 2D

De esta forma se puede deducir empírica y análogamente a la Figura 3.2, una región reducida resultante del producto de las regiones sombreadas en los planos de la Figura 3.3. Aún cuando puede mostrarse que esa es de hecho una región reducida, los límites del triángulo sombreado del plano M de la Figura 3.3 introducen ciertas redundancias [28] que pueden ser eliminadas para obtener una región reducida mínima a partir de la cual sea posible obtener el Biespectro completo, a esta nueva región se le conoce como región no-redundante. En el capítulo siguiente (sección 4.3) se hablará ampliamente sobre la ob-tención de regiones no redundantes para el Biespectro bidimensional.

3.3.1 Bicoherencia

Existen aplicaciones en las que se requiere contar con estimados normalizados sobre dis-tintas muestras de datos con el fin de realizar análisis comparativos bajo los mismos mar-cos de referencia. Esto puede extenderse al uso de funciones poli espectrales y calcular versiones normalizadas de los estimados. La razón para normalizar el Biespectro radica en el hecho de que su varianza es proporcional al triple producto de la potencia de las

38 Capítulo 3. Biespectro

componentes de frecuencia, por lo que, depende en gran medida de la potencia de las co-rrelaciones (estadísticas de segundo orden) entre las frecuencias que lo componen. Estas condiciones pueden llevar a malas interpretaciones del Biespectro dado que la varianza de éste depende fuertemente de las potencias asociadas a cada frecuencia.

Se puede definir un estimado normalizado del Biespectro cuya varianza sea indepen-diente de la potencia asociada con sus frecuencias mediante la ecuación (3.38).

1 21 2 22 *

1 2 3

( , )( , )

[ ( ) ( ) ] [ ( ) ]norm

BB

E X X E X= k kk k

k k k (3.38)

Donde: 1 1 1,m nk k=k 2 2 2,m nk k=k y 3 1 2 1 2,m m n nk k k k= + +k .

La magnitud del Biespectro normalizado se conoce como Bicoherencia, ésta resulta útil para la detección de acoplamientos cuadráticos de fase [29] y está definida por:

*

1 2 31 2 22 *

1 2 3

[ ( ) ( ) ( )]( , )

[ ( ) ( ) ] [ ( ) ]

E X X Xb

E X X E X=

k k kk k

k k k (3.39)

Donde: 1 1 1,m nk k=k 2 2 2,m nk k=k y 3 1 2 1 2,m m n nk k k k= + +k .

3.3.2 Biespectro modificado

Además de la Bicoherencia, se puede usar otra variación del Biespectro para resaltar ca-racterísticas de interés para ciertas aplicaciones que se conoce como Biespectro modifi-cado (BISM). Se ha mencionado que una de las características de las cuales obtiene su potencialidad el Biespectro es la conservación de la fase. El Biespectro modificado hace uso de esa característica relacionando los valores de magnitud y fase y se define como:

( ) ( )( )1 2

1 2 1 2,, ,M

BB B ππ

− ∠= × k kk k k k (3.40)

Este estimado es una función real que resulta del enmascaramiento de la magnitud del Biespectro a través de su fase. El objetivo es resaltar las magnitudes debidas a acopla-mientos de fase y atenuar aquellas que no tengan relación con tales acoplamientos. Esta variación del Biespectro se utiliza como auxiliar en aplicaciones en las que se requiere detectar acoplamientos cuadráticos de frecuencias, ya que puede proporcionar represen-taciones gráficas de magnitud con información inherente de fase.

3.4 Estimación de las funciones poliespectrales

En la práctica, las estimaciones de cumulantes y Poliespectros se hacen sobre secuencias finitas de datos. Esto hace que los estimados no sean exactos dado que se requiere una gran cantidad de datos para obtener varianzas mínimas en la estimación de estadísticas de procesos aleatorios. Esto es: Sea x(n) un proceso aleatorio, s alguna estadística definida

3.4 Estimación de las funciones poliespectrales 39

para x(n) y ŝN una estimación basada en N observaciones de dicha estadística, 10 ( )N

nx n −= ,

dado que x(n) es aleatorio, el estimado ŝN también lo es, se puede observar que ŝN no es igual a s. Se dice que la estimación ŝN es buena mientras más se aproxime al valor de s.

Estas consideraciones se aplican cuando se realizan estimados de cumulantes y Polies-pectros, existen técnicas para hacer que una estimación se aproxime más al valor espe-rado, una de ellas es la técnica de ventanas, que consiste en multiplicar los datos de muestra por una función de ventana que cuenta con características especiales haciendo que el valor estimado sea más próximo al valor esperado [2].

3.4.1 Periodograma y Biperiodograma

Con el objeto de reducir los errores estadísticos en la estimación de Poliespectros así como para agilizar el tiempo de cómputo, se puede dividir a las señales en segmentos traslapantes para después obtener un estimado del Poliespectro para cada segmento y fi-nalmente promediar los estimados resultantes para obtener una estimación de menor re-solución de la señal completa. A esta técnica de promediado se le conoce con el nombre de periodograma para el caso de la PSD y biperiodograma para el caso del BIS.

Dada una señal discreta x(n) de longitud N, y xi(n) el i-ésimo segmento de longitud N/α perteneciente a x(n), donde α es una constante e i=1,2,...,M, se define el periodograma de x(n) como:

1

1ˆ( ) ( )M

ii

P PM =

= ∑k k (3.41)

Donde Pi(k) es la PSD del i-ésimo segmento y la longitud del periodograma es igual a la longitud de los segmentos individuales. Este concepto puede emplearse tanto para el do-minio de señales unidimensionales como para el dominio de señales bidimensionales uti-lizando las formas de PSD correspondientes para cada dominio.

Para la PSD bidimensional N es igual al número de muestras (n x m) de la señal bidimen-sional discreta x(m,n) para la cual se tienen las formas indirecta y directa:

2,1

1ˆ( , ) ( , )exp 2 ( )i

n m

Mm m n n

m n x m ni

k kP k k c j

M Nτ τ

τ ττ τ πα∞ ∞

= =−∞ =−∞

+⎡ ⎤= −⎢ ⎥⎣ ⎦∑ ∑ ∑ (3.42)

1

1ˆ( , ) ( , ) *( , )M

m n i m n i m ni

P k k X k k X k kM =

= ∑ (3.43)

De forma análoga se define el biperiodograma de x(n) como:

1 2 1 21

1ˆ( , ) B ( , )M

ii

BM =

= ∑k k k k (3.44)

Para el Biperiodograma bidimensional se tienen las siguientes formas indirecta y directa:

40 Capítulo 3. Biespectro

( )2 2 1 1

1 1 2 21

1 1 1 1 2 2 2 23, 1 1 2 2

1ˆ( , , , )

( , , , )exp 2 ( )

n m n m

i

M

m n m ni

m m n n m m n nx m n m n

B k k k kM

k k k kc jN

τ τ τ ττ τ τ ττ τ τ τ π

∞ ∞ ∞ ∞

= =−∞ =−∞ =−∞ =−∞=

+ + +⎡ ⎤−⎢ ⎥⎣ ⎦

∑ ∑ ∑ ∑ ∑ (3.45)

1 1 2 2 1 1 2 2 1 2 1 21

1ˆ( , , , ) ( , ) ( , ) *( , )M

m n m n i m n i m n i m m n ni

B k k k k X k k X k k X k k k kM =

= + +∑ (3.46)

La estimación de Poliespectros utilizando los métodos de periodograma ayuda de gran manera a reducir la varianza en los estimados ya que éstos se aproximan asintóticamente a los valores reales. Sin embargo, presentan ciertos inconvenientes. Por ejemplo, para tener estimados confiables, se requieren señales cuyo número de muestras sea muy grande (el estimado es más exacto cuando tiende a infinito). Además, se debe seleccionar el tamaño de los segmentos de tal forma que la disminución de la resolución no afecte en la interpretación de los datos.

3.4.2 Ventanas

El uso del periodograma y biperiodograma para la estimación de Poliespectros supone una mejora en cuanto a la varianza del estimado, aunque conlleva una pérdida de resolu-ción debida a la fragmentación de los datos. Si la longitud de los datos es reducida, el de-cremento en la resolución crecerá además de que se presentará el fenómeno de derrame espectral, el cual consiste en la aparición de frecuencias ajenas al proceso introducidas por el algoritmo de la Transformada Rápida de Fourier (FFT). Este fenómeno es el re-sultado directo del truncado de los datos y se presenta más severamente para valores pe-queños de N.

Una solución al problema del derrame espectral es el uso de funciones de suavizado ya sea en el dominio del tiempo o en el dominio de la frecuencia. El método consiste en multiplicar una función de ventana antes de transformar al dominio espectral para el mé-todo indirecto, o utilizar una función de ventana en el dominio de la frecuencia como fil-tro para el Biespectro. Existen algunas funciones de ventana ya definidas que son útiles para una gama de aplicaciones. La selección de la ventana depende de la aplicación, la complejidad de los cálculos y el grado de suavizado que se requiera.

Para el método indirecto, la estimación del Biespectro bidimensional con ventana queda-ría de la siguiente forma [1]:

( )

1 2

1 1 2 21 2 3, 1 2 1 2

2( , ) ( , ) ( , )expxB c w jN

π

=

∞ ∞

−∞ =−∞

+⎡ ⎤= −⎢ ⎥⎢ ⎥⎣ ⎦∑ ∑ k kk kτ τ

τ ττ τ τ τ (3.47)

Donde: 1 1 1,m nk k=k 2 2 2,m nk k=k 1 1 1,m nτ τ=τ 2 2 2,m nτ τ=τ y 1 2( , )w τ τ es una función de ventana de cuatro dimensiones que satisface las propiedades de simetría de los cumulan-tes de tercer orden. La ventana puede generarse a partir de ventanas bidimensionales bus-cando conservar las propiedades de simetría.

3.5 Implicaciones computacionales 41

3.5 Implicaciones computacionales

Como se puede observar en (3.27) y (3.34), el Biespectro es una función de combinacio-nes de frecuencias que trae consigo un aumento de dimensiones. Esto es, al calcular el cumulante de orden tres de una señal en el tiempo, se obtiene una secuencia de dos di-mensiones y al calcular el cumulante de orden tres de una señal bidimensional se obtiene una secuencia de datos de cuatro dimensiones. Este último hecho revela algunas dificul-tades en cuanto a la representación de los cumulantes y Poliespectros de órdenes superio-res a dos para secuencias bidimensionales.

De esta forma, la estimación del Biespectro para secuencias bidimensionales lleva con-sigo implicaciones y requerimientos computacionales que deben ser considerados con mucha atención. El cómputo del Biespectro discreto para señales bidimensionales re-quiere de grandes arreglos de memoria, incluso si se trabaja con conjuntos pequeños de datos. El tiempo necesario para la estimación del Biespectro está relacionado directa-mente con el método de estimación que se emplee, es decir, los requerimientos de cóm-puto difieren si se utiliza el método directo o el método indirecto.

La implementación del método indirecto implica el cómputo de los cumulantes de orden tres para realizar posteriormente una transformada discreta de Fourier de cuatro dimen-siones. En contraparte, para el método directo se requiere del cálculo, direccionamiento y multiplicación de la transformada de Fourier bidimensional de la señal, además de opera-ciones que involucran el conjugado y multiplicación de números complejos. El cálculo del Biespectro a partir del método directo resulta más eficiente que el obtenido usando el método indirecto.

Por otra parte, los requerimientos de memoria son los mismos, indistintamente del mé-todo que se use, por lo que, en ambos casos, se requiere almacenar arreglos de cuatro di-mensiones del mismo tamaño. Además, la cantidad de memoria necesaria está en propor-ción al tipo de formato de datos que se emplee para representar cada elemento del arreglo. Es decir, si se trabaja con datos de punto flotante de doble precisión se requerirán 64 bits por cada elemento. Suponiendo señales cuadradas de longitud M, el arreglo re-sultante para el BIS requerirá de 48M bytes para ser almacenado en memoria.

Tales implicaciones computacionales se traducen en una de las razones principales por las cuales, la implementación práctica de procedimientos no-paramétricos para la estima-ción del Biespectro no consiga desarrollarse tan rápidamente como su contraparte para-métrica.

Dichos problemas pueden abordarse tomando ventaja de las simetrías mostradas en (3.28) y (3.37) buscando el cómputo y almacenamiento de regiones reducidas. En el capí-tulo 4 se presentan dos alternativas de solución al problema de los recursos de cómputo utilizando las relaciones de simetría del Biespectro.

42 Capítulo 3. Biespectro

3.6 Relación Biespectro-Imagen

Se ha establecido que el Biespectro tiene características de supresión de ruido gaussiano, conservación de la fase del espectro de Fourier, baja sensitividad a corrimientos aleato-rios y sensibilidad a no-linealidades presentes en la señal [2][17].

Suele asociarse ciertos efectos en imágenes causados por no-linealidades, introducidas por los dispositivos de adquisición con valores altos de correlación encontrados en el Biespectro. Ejemplos de esto pueden ser: las distorsiones geométricas introducidas por el uso de lentes cónicos o no-linealidades en la luminancia. En estos casos, el Biespectro es útil para identificar dichas distorsiones y aplicar métodos correctivos usando indirecta-mente la información proporcionada.

Además, se pueden explotar algunas otras características con el simple hecho de aplicar el Biespectro, modificar la información de éste y reconstruir la imagen a partir de los nuevos datos obtenidos. Este procedimiento se emplea en el procesamiento de imágenes astronómicas [14].

De lo anterior, se pueden destacar dos formas principales del uso Biespectro para el pro-cesamiento que son:

• Procesamiento indirecto, utilizando la información proporcionada por el BIS;

• Reconstrucción a partir del Biespectro o de una versión modificada de éste.

3.7 Reconstrucción usando el Biespectro

La obtención de señales a partir del Biespectro o de una parte de éste se conoce como reconstrucción e implica realizar un procedimiento inverso al cómputo del Biespectro. Se ha puesto gran atención al problema de la reconstrucción de formas de onda unidimen-sionales a partir de estimaciones del Biespectro [16][17][24]. El desarrollo de técnicas de reconstrucción basadas en el Biespectro está motivado por sus ya conocidas ventajas de conservación de la fase del espectro de Fourier, baja sensitividad a ruido gaussiano adi-tivo y sensitividad nula a corrimientos aleatorios en la señal original [17].

Algunos trabajos han presentado métodos de reconstrucción para señales bidimensionales a partir de su Biespectro, dos de ellos [3][4], se han estudiado a profundidad con la inten-ción de implementar los métodos que ahí se proponen. Al estudiar éstos y otros trabajos, se encontraron algunas coincidencias en cuanto a los problemas que pueden presentarse cuando se trata de reconstruir señales a partir de su Biespectro. La Figura 3.4 presenta un diagrama a bloques del proceso de reconstrucción. Como se observa en la figura, la re-construcción puede realizarse directamente a partir del Biespectro de la señal o de una versión enmascarada o filtrada de éste.

3.7 Reconstrucción usando el Biespectro 43

Figura 3.4 Proceso de reconstrucción

3.7.1 Problemas en la reconstrucción

Al trabajar con el Biespectro se trabaja en el dominio de la frecuencia, lo que se busca, lógicamente, en la reconstrucción es la obtención de la señal en el mismo dominio, es decir, su Transformada de Fourier para posteriormente obtener la imagen reconstruida aplicando la Transformada de Fourier inversa. Prácticamente, la reconstrucción de la magnitud de Fourier de la señal no representa mayores problemas lo cual se ha podido comprobar recreando los métodos estudiados. Sin embargo, es en la reconstrucción de la fase donde se encuentran serios problemas.

Por un lado, el Biespectro tiende a suprimir el factor lineal de fase de la señal por lo que la señal reconstruida corresponderá a una versión “corrida” de la original. Por otra parte, el uso de la función arco-tangente para calcular la fase, introduce un comportamiento pe-riódico debido a discontinuidades propias de esta función. A este problema se le conoce comúnmente como “envolvimiento de fase” (phase wrapping).

El envolvimiento de fase obliga a buscar procedimientos que reviertan este efecto con lo que el propio método de reconstrucción tiende a complicarse. A parte de lo ya mencio-nado, se debe tener en cuenta que el desenvolvimiento de la fase del Biespectro repre-senta una complicación adicional al ser ésta una función de cuatro dimensiones.

Por si fuera poco, los métodos de reconstrucción disponibles hasta el momento, basan su funcionamiento en la suposición de que se cuenta con la información del Biespectro completo y no dan indicaciones del posible uso de regiones reducidas lo cual, añade difi-cultades al presentarse las implicaciones mencionadas en la sección 3.5. La Figura 3.5 ejemplifica los resultados de reconstruir sin resolver los problemas mencionados.

a) Original b) Reconstruida

Figura 3.5 Problemas en la reconstrucción

44 Capítulo 3. Biespectro

En la Figura 3.5 se presentan dos imágenes aparentemente distintas, éstas tienen la característica de poseer Transformadas de Fourier equivalentes en magnitud pero distin-tas en fase. Como puede verse, el efecto de tener fases diferentes puede ocasionar que se pierda la información visual contenida en la imagen.

3.7.2 Desenvolvimiento de fase

Comúnmente, los algoritmos que calculan la fase de una señal producen resultados solo en un rango de [-π , π]. Esto se debe a que utilizan la función arco-tangente para calcular la fase. Para muchas aplicaciones, este artificio no resulta tan relevante, pero para otras [26], en las que el valor real de la fase de tiempo es crucial, se deben tomar las medidas necesarias para corregirlo.

Una función de fase envuelta en el rango mencionado, presenta discontinuidades con saltos de 2π para variaciones mayores a ése valor. La función de los algoritmos de desen-volvimiento es remover esas discontinuidades añadiendo o sustrayendo múltiplos de 2π apropiados para obtener la fase real. La clave del éxito de estos algoritmos radica en la detección de las discontinuidades y en los criterios que se utilicen para diferenciar un salto real en la fase de una discontinuidad.

Un enfoque usado frecuentemente es el de calcular el valor principal de la fase y de a partir de éste calcular las discontinuidades buscando saltos que sobrepasen un umbral predeterminado [27]. Por ejemplo, para una función (1D) compleja ( )KX ω .

[ ]arg ( )mod 2X K KXφ ω π ω= ∀ ∈Ω (3.48)

Donde Xφ es la función de los valores principales de la fase de ( )KX ω y 2 , 0,1..... 1K N k k NπωΩ= = = − siendo k un número entero y N el número de muestras.

La idea es ir desenvolviendo apropiadamente al sumar múltiplos de 2π al valor principal hasta que las discontinuidades inducidas por la operación de módulo sean removidas. Este algoritmo, asume la detección inequívoca de dichas discontinuidades, lo cual, se es-pera conseguir calculando la diferencia entre los valores principales de la fase en dos fre-cuencias adyacentes ωk-1 y ωk. Siempre que esta diferencia sea superior a un umbral pre-definido, se dirá que existe una discontinuidad. Si la frecuencia de muestreo es lo suficientemente fina, podrá tenerse una inequívoca relación entre las variaciones natura-les de la fase y las discontinuidades inducidas por la operación de módulo 2π. Sin em-bargo, existen fenómenos de fluctuación de fase que impiden a este procedimiento (in-cluso con frecuencias de muestreo altas) poder detectarlas a partir de los valores principales.

De lo anterior se puede advertir que el algoritmo de desenvolvimiento de fase resultará más confiable si se cuenta con información adicional acerca de la aplicación, además de

3.8 Resumen 45

que, como se ha mencionado en repetidas ocasiones, la complejidad de la solución se in-crementa al tener funciones de fase de 4 dimensiones.

Desafortunadamente, no se cuentan hasta el momento con métodos para el desenvolvi-miento de la fase de funciones de 4 dimensiones ni se tiene la información necesaria sufi-ciente para el desarrollo de uno propio. Por estas razones, se ha propuesto una solución alternativa al desenvolvimiento de la fase del Biespectro usando conceptos relacionados con la naturaleza de dicha fase. El procedimiento de solución se describe en el capítulo siguiente (sección 4.4).

3.8 Resumen

En el presente capítulo se han presentado conceptos para la estimación de Poliespectros y más específicamente de Biespectros. Se muestran también las formas de estimación para señales bidimensionales de Poliespectros de segundo y tercer orden a partir de sus formas unidimensionales.

Se introduce el concepto de reconstrucción y se plantean algunas relaciones existentes entre las imágenes y su Biespectro así como posibles panoramas de procesamiento. Se describen también problemas que se presentan comúnmente con la reconstrucción y se habla de posibles alternativas de solución que serán ampliadas más adelante.

Los conceptos presentados en este capítulo en conjunto con los presentados en el capítulo anterior brindan un panorama para el desarrollo de métodos computacionales que bus-quen relacionar las técnicas de procesamiento de imágenes con los métodos de estima-ción de Biespectros de señales bidimensionales. En el siguiente capítulo se describirá el desarrollo de dichos procedimientos así como explicaciones más abundantes sobre posi-bles aplicaciones de éstos.

47

4. Desarrollo de algoritmos

La escritura de un programa de computadora, consiste generalmente en imple-mentar un método de resolución de algún problema. Es el método, y no el pro-grama, el que debe analizarse para comprender cómo está siendo abordado el problema. El término “algoritmo” se utiliza para describir dicho método, el cual es adecuado para su implementación como programa de computadora [30]. Las aplicaciones del procesamiento digital de señales suelen programarse en los mismos lenguajes que otras tareas de ciencias e ingenierías tales como C, Basic, ensamblador y lenguajes dedicados como mathcad, mathematica, Matlab, etc. El poder y la versatilidad de C lo hace el lenguaje de elección más común entre cien-tíficos y programadores profesionales. Para la implementación de los algoritmos de este trabajo se eligió Matlab. Esta herramienta tiene el inconveniente de estar desarrollada en un lenguaje interpre-tado, por lo que los tiempos de ejecución aumentan considerablemente en compa-ración con lenguajes de nivel más bajo. No obstante, Matlab ofrece otras ventajas como: facilidad para el manejo de arreglos, funciones matemáticas predefinidas, una herramienta de procesamiento de imágenes y una interfaz gráfica que permite visualizar datos y variables en cualquier instante. En este capítulo se describirá el desarrollo de algoritmos relacionados con los conceptos de procesamiento de imágenes, estimación de Biespectros, reconstruc-ción y resolución de problemas presentados en los capítulos 2 y 3. También se des-criben sus implementaciones en Matlab.

4.1 Algoritmos de procesamiento de imágenes

Como se ha dicho, una de las razones por las que se eligió Matlab como herramienta de desarrollo es que cuenta con un Toolbox (TB) para el procesamiento digital de imágenes. Este TB es una colección de funciones que soportan una amplia gama de operaciones de procesamiento como son: Transformaciones espaciales, operaciones morfológicas, opera-ciones de vecindad y de bloque, filtrado tanto espacial como en el dominio de la frecuen-cia, diseño de filtros, análisis y realce de imágenes, adición de diferentes tipos de ruido, entre otras.

Además, el TB incluye funciones de conversión entre tipos de imágenes y mediante las manipulaciones adecuadas, se pueden usar otras funciones incorporadas en Matlab para el manejo de arreglos, haciendo de esta herramienta una alternativa muy poderosa. Por tales razones, los algoritmos para el procesamiento convencional de imágenes de este tra-

48 Capítulo 4. Desarrollo de algoritmos

bajo resultan relativamente simples al utilizar las funciones mencionadas y suponen un ahorro de tiempo y esfuerzo en el diseño e implementación.

4.1.1 Lectura, acondicionamiento y escritura de imágenes

El TB de procesamiento digital de imágenes incluye funciones para la lectura, la conver-sión entre tipos y la escritura de imágenes en archivos. A continuación se definirán pro-cedimientos muy simples que se siguen para la apertura (lectura) de imágenes, el acondi-cionamiento de los datos de la imagen para su posterior escritura en archivos de imagen. Estos procedimientos se usarán generalmente cuando sea necesario trabajar con los datos de una imagen y posterior al procesamiento, almacenarlos en un tipo de archivo estándar.

Se presentarán los procedimientos en forma de pseudo-código para facilitar su lectura y comprensión, en el apéndice A se presentan a detalle las funciones de Matlab específicas utilizadas para estos propósitos.

Img := leer_imagen [imagen en archivo] ; Utilizando imread Img := convertir_a_grises(Img) ; Solo si es necesario usando . ; rgb2gray o ind2gray [código de procesamiento] ; Aquí se modifican los datos . ; de la imagen Img := Img + abs(min(Img)) ; Para tener solo valores po- Img := 255 * (Img / max(Img)) ; sitivos en el rango 0-255 [archivo_imagen] := escribir_imagen(Img) ; Usando imwrite

Los procedimientos presentados se usan en la mayoría de los algoritmos de procesa-miento de imágenes, por lo que en adelante solo se hará referencia a ellos con los nom-bres de obtener y guardar respectivamente. Las líneas de adecuación de datos se usan solo para imágenes que no involucran directamente la manipulación del brillo y contraste ya que, de hecho, esta parte del procedimiento es en realidad una manipulación de brillo y contraste.

Se pueden escribir procedimientos similares para la mayoría de las tareas convencionales del procesamiento utilizando diversas funciones incluidas en el TB. A continuación se presentarán los algoritmos de solo algunas de ellas dado que serán utilizadas más ade-lante en el desarrollo de las aplicaciones de este trabajo.

4.1.2 Corrección de gamma

En el TB de procesamiento de imágenes existen funciones de manipulación de brillo y contraste definidas modificando ciertos parámetros de la función imadjust. Sin embargo, no se utilizará dicha función dado que solo trabaja con datos en formato de ocho bits (int8) y por conveniencia se requiere utilizar datos de doble precisión de 64 bits (double). La razón es poder utilizar otras funciones de Matlab que solo trabajan con este último formato y combinar además, los algoritmos de procesamiento de imágenes con los gene-rados para la obtención de Poliespectros.

4.1 Algoritmos de procesamiento de imágenes 49

El desarrollo de un algoritmo para la corrección de gamma es de simple implementación gracias al poder en el manejo de arreglos de Matlab. El procedimiento para la corrección de gamma es el siguiente:

Img := obtener [archivo_imagen] ; Se emplea el operador .^ de Gamma := [definir valor] ; Matlab para una exponencia- Img := Img ^ gamma ; ción de elemento por elemen- [archivo_imagen] := guardar(Img) ; to y no matricial

En lo subsiguiente se hará referencia a este procedimiento con el nombre de gamma sim-plemente considerando como argumentos la imagen a ser procesada y el valor del pará-metro γ. Las imágenes de ejemplo de la Figura 2.7 se procesaron utilizando este procedi-miento utilizando valores de γ = 2 y γ = 0.5 respectivamente.

4.1.3 Filtrado lineal

El filtrado es una técnica que se usa para modificar o realzar alguna o algunas caracterís-ticas en una imagen. El filtrado es una operación de vecindad en la cual se calcula el va-lor de algún píxel en la imagen de salida, aplicando cierto algoritmo a los valores de la vecindad del píxel correspondiente en la imagen de entrada.

El filtrado lineal es aquel en el que el valor de un píxel de salida es una combinación li-neal de los valores de la vecindad del píxel de entrada. El filtrado lineal de una imagen se puede conseguir a través de la operación de correlación, en ésta, el valor de un píxel de salida se obtiene mediante una suma ponderada de los píxeles de su vecindad. La matriz de pesos es llamada núcleo y también es conocida como máscara o filtro espacial. Tam-bién se puede realizar el filtrado lineal mediante la operación de convolución la cual está estrechamente relacionada con la correlación.

Para fines prácticos, la única diferencia entre el filtrado por correlación y el filtrado por convolución es que en este último, tiene que rotarse el núcleo 180 grados antes de reali-zar las operaciones de vecindad. El TB de procesamiento de imágenes proporciona fun-ciones para el filtrado ya sea por convolución o correlación además de funciones para el diseño de filtros tanto en el dominio del tiempo como en el dominio de la frecuencia. Por ejemplo, la función imfilter realiza el filtrado lineal multidimensional ya sea por con-volución o por correlación, lo cual permite filtrar directamente imágenes RGB sin tener que realizar conversiones previas entre tipos de imágenes.

Además de imfilter, se encuentran disponibles otras funciones de Matlab como filter2 y conv2 para realizar la correlación bidimensional y convolución en dos dimensiones res-pectivamente. Adicionalmente, la función fspecial puede generar varios tipos de filtros predefinidos en forma de máscara de correlación. Después de crear un filtro con fspe-cial, éste se puede aplicar directamente a una imagen utilizando imfilter. Si se requiere un filtro espacial diferente a los preestablecidos por fspecial, puede definirse empírica-

50 Capítulo 4. Desarrollo de algoritmos

mente una máscara espacial considerando los conceptos introducidos en las secciones 2.5.1 y 2.5.2 para filtros de suavizado y realce.

Alternativamente, pueden utilizarse técnicas en el dominio de la frecuencia tanto para el filtrado como para el diseño de filtros. Esto se logra mediante la implementación de los teoremas de convolución y correlación utilizando los algoritmos de la Transformada rá-pida de Fourier bidimensional incorporados en Matlab. Para mayor información en el di-seño de filtros en el dominio de la frecuencia, consultar el apéndice A de este documento así como la documentación de ayuda de Matlab [25].

De lo anterior, pueden desarrollarse procedimientos que utilicen una u otra función de las ya mencionadas según sea adecuado para la aplicación en que se requieran. El siguiente procedimiento considera el filtrado espacial predefiniendo una máscara y después apli-cando correlación o convolución según sea el caso.

Img := obtener [archivo_imagen] ; Nucleo:= obtener_máscara ; El método de obtención puede ser la . ; definición directa de una matriz, [método] ; usando fspecial o transformando al . ; dominio espacial un filtro diseñado . ; para el dominio de la frecuencia Img2 := filtrar (Img, Nucleo) ; Usando imfilter, filter2 o conv2 [archivo_imagen] := guardar(Img2) ; Guarda la imagen filtrada

Como puede observarse, el procedimiento es simple dado que se cuenta con funciones específicas para el filtrado y se tienen distintas posibilidades para obtener la máscara es-pacial. Para el filtrado en el dominio de la frecuencia se tiene el siguiente procedimiento:

Img := obtener [archivo_imagen] ; Nucleo:= obtener_máscara ; Obtención de una máscara espacial [método] ; de forma análoga al proc. anterior . ; Filtro:= fft2D(Nucleo) ; Deben definirse fft’s de la misma IMG := fft2D(Img) ; longitud IMG2 := IMG * Filtro ; Se multiplican los arreglos en la . ; frecuencia, si se requiere correla- [IMG2 := IMG * conjugado(Filtro)] ; ción debe usarse el conjugado com - . ; plejo del filtro Img2 := fft2D_inversa(IMG2) ; Se transforma al dominio espacial [archivo_imagen] := guardar(Img2) ; resultando en la imagen filtrada

Si se define una máscara espacial con coeficientes constantes de la forma:

1hN

= ⋅I (4.1)

Donde N es el número de elementos de la máscara e I es una matriz identidad de N ele-mentos, se dice que se tiene un filtro de media o de promediado dado que al aplicar el filtrado por convolución o correlación usando esta máscara, el píxel resultante equivale al promedio de los píxeles de su vecindad. La función fspecial presenta la opción de crear

4.1 Algoritmos de procesamiento de imágenes 51

este tipo de filtros, se hace mención de éstos dado que más adelante se abordará una apli-cación utilizando este tipo de máscara.

Como ejemplo del filtrado lineal se tienen la Figura 2.9b y la Figura 2.10b. En la Figura 2.9b se utilizó el filtro suavizante dado por la máscara y la respuesta en frecuencia, mostradas en la Figura 4.1 Mientras que la Figura 2.10b se obtuvo utilizando un filtro de realce el cual se muestra en la Figura 4.2.

a) Respuesta en frecuencia b) Máscara espacial

Figura 4.1 Filtro suavizante (Pasa bajas)

a) Máscara espacial b) Respuesta en frecuencia

Figura 4.2 Filtro de realce (Pasa altas)

4.1.4 Filtrado por mediana

Además del filtrado lineal, pueden utilizarse operaciones de vecindad para realizar el fil-trado mediante operaciones de naturaleza no lineal. Un ejemplo de esto es el filtrado por mediana mediante el cual, el nivel de intensidad de cada píxel se reemplaza por la me-diana de los niveles de intensidad de su vecindad. La función medfilt2 del TB de proce-samiento de imágenes realiza el filtrado por mediana. El procedimiento para realizar este filtrado es simple y se presenta a continuación.

Img := obtener [archivo_imagen] ; m := [definir valor] ; m y n son las dimensiones del fil- n := [definir valor] ; tro (vecindad) Img2:= filtro_mediana(Img, m x n) ; Usando medfilt2 [archivo_imagen] := guardar(Img2) ;

Como puede observarse, el único parámetro por definir para este tipo de filtrado es el ta-maño del filtro. La Figura 2.9c presenta un ejemplo de filtrado bajo esta técnica usando una vecindad de 5 x 5 píxeles.

52 Capítulo 4. Desarrollo de algoritmos

4.2 Algoritmos de estimación de Biespectros

Como se dijo anteriormente, la elección de Matlab como herramienta de desarrollo trae ventajas como la potencialidad para el manejo de archivos, misma que tratará de aprove-charse en la implementación de algoritmos de estimación para funciones poli espectrales.

Primero se presentarán algoritmos para implementar las funciones presentadas en el ca-pítulo 3 en relación a la estimación de Poliespectros. Posteriormente dichos algoritmos se optimizarán de ser necesario y se modificarán de acuerdo a los procedimientos para el cálculo de regiones reducidas que será tratado en la siguiente sección.

4.2.1 PSD unidimensional

Para el Poliespectro de segundo orden PSD se requiere implementar las ecuaciones (3.22) y (3.23) para los métodos indirecto y directo, respectivamente. La implementación de dichas ecuaciones son relativamente simples gracias a las funciones xcorr y fft de Matlab, los procedimientos para implementarlas se presentarán como funciones compu-tacionales con argumentos de entrada y argumentos de salida de la siguiente forma:

;--------------------------------------- Método indirecto función PSDi(xn) ; Datos de la señal como argumento de xn := xn - media(xn) ; entrada, se sustrae la media yn := auto_correlación(xn) ; Usando xcorr YK := fft(yn) ; Se obtiene el espectro regresar(YK) ; Argumento de salida de la función

;--------------------------------------- Método directo función PSDd(xn) ; Datos de la señal de longitud N xn := xn - media(xn) ; Se sustrae la media XK := fft(xn) ; Definir el tamaño de la fft 2N-1 YK := XK * conjugado(XK) ; Se usa el operador .* de Matlab regresar(YK) ; Argumento de salida de la función

Aún cuando las funciones presentadas tienen el mismo número de pseudo-instrucciones, la función para el método directo es más eficiente ya que Matlab requiere más tiempo para realizar los desplazamientos necesarios dentro de la función xcorr en comparación con las multiplicaciones de elemento por elemento de la Transformada de Fourier de los datos y su conjugado complejo.

4.2.2 PSD bidimensional

De forma análoga, el desarrollo de procedimientos para la PSD bidimensional, requiere la implementación de las ecuaciones (3.32) y (3.33) para los métodos indirecto y directo respectivamente. Los algoritmos son prácticamente idénticos a los unidimensionales, con la única diferencia de que se usan las funciones bidimensionales de auto correlación xcorr2 y Transformada de Fourier fft2. Además, la eficiencia de la función para el mé-todo directo es mejor que la del método indirecto por las mismas razones expuestas para sus equivalentes unidimensionales. A las funciones PSD bidimensionales se les dará el nombre de PSDi2D y PSDd2D, respectivamente.

4.2 Algoritmos de estimación de Biespectros 53

4.2.3 Biespectro unidimensional

Para el caso del Biespectro, la implementación de las ecuaciones que lo definen no es tan simple como para la PSD ya que las funciones que deben desarrollarse son un poco más complejas y en este caso, no se cuenta con funciones de Matlab para estos propósitos. Para la implementación de éstos y subsecuentes algoritmos, deben tomarse en cuenta ciertos aspectos en cuanto al direccionamiento de arreglos en Matlab como son:

• El primer índice del arreglo es 1 y no 0 como en otros lenguajes de programación.

• No se pueden utilizar índices negativos para direccionar arreglos.

• No pueden utilizarse índices que excedan la longitud del arreglo.

• Se pueden direccionar arreglos de dimensiones mayores a uno tomándolos como arreglos unidimensionales, considerando al índice del arreglo como función de los índices de las dimensiones adicionales, ecuación (4.2) donde (i1, i2, ... in) son índi-ces para cada dimensión (d1,d2,...dn) e i es el índice unidimensional resultante.

( 1)( 1)( 2)...( 1) ( 1 1)( 2)...( 1) ... ( 2 1)( 1) 1i in dn dn d in dn d i d i= − − − + − − − + + − + (4.2)

• Las operaciones elemento por elemento deben realizarse con arreglos del mismo tamaño.

Para adaptar el manejo de arreglos de Matlab a la definición de funciones presentadas en el capítulo anterior, se sumará o restará una unidad para añadir un desplazamiento en los índices según sea necesario. Se utilizarán operaciones de módulo para mapear índices negativos o que excedan el tamaño de los arreglos, en base a las propiedades de simetría y periodicidad de la Transformada de Fourier.

Las ecuaciones (3.26) y (3.27) representan los métodos indirecto y directo para el Biespectro, su implementación como funciones de pseudo-código tomando las considera-ciones mencionadas se presentan a continuación.

;--------------------------------------- Método indirecto función BISi(xn) ; xn := xn - media(xn) ; N := longitud(xn) ; Usando length for t2:=0,t=N-1,t2++ ; Ciclos for para t2 y t1 de 0 a N-1 for t1:=0,t1=N-1,t1++ ; con incrementos de uno xnt1 := rotar(xn,t1) ; Corrimientos circulares usando xnt2 := rotar(xn,t2) ; circshift aux := xn * xnt1 * xnt2 ; x(n)x(n+t1)x(n+t2) usando op. .* yn[t1+1,t2+1] := media(aux) ; Expectación E[.] usando mean end ; Al final de las iteraciones yn con- end ; tiene el cumulante de orden 3 de xn YK := fft2D(yn) ; Se obtiene el Biespectro regresar(YK) ; Argumento de salida de la función

54 Capítulo 4. Desarrollo de algoritmos

Para el método directo se aprovechará el manejo unidimensional sobre el arreglo para el Biespectro utilizando los dos últimos términos de (4.2), además se empleará la periodici-dad y simetría de la Transformada de Fourier asumiendo que X*(k) = X(-k). El método se presenta a continuación:

;--------------------------------------- Método directo función BISd(xn) ; Datos de la señal de longitud N xn := xn - media(xn) ; Se sustrae la media N := longitud(xn) ; Usando length XK := fft(xn) ; k2 := vector_columna(1 a N) ; Se definen vectores para direccio - for j:=0,j=N-1,j++ ; nar el arreglo XK, k2 k1 := vector_columna(j) ; k1 constante para cada iteración k3 := -(k1 + k2) + 2 ; Argumento término conjugado X*(k3) k3 := (k3 mod M) + 1 ; Mapeo de índices fuera de rango ky := (k2-1)*M + k1 ; Indice para YK, toda una columna YK[ky] := XK[k1] * XK[k2] * XK[k3] ; Una columa del BIS, se usa .* end ; Finalmente YK tiene todas las cols. regresar(YK) ;

Como se ha mencionado en varias ocasiones, el método directo presenta una mayor efi-ciencia en comparación con el método indirecto gracias a las ventajas de trabajar direc-tamente en el dominio de la frecuencia. Esta condición permanece tanto para el Biespec-tro unidimensional como para el bidimensional.

4.2.4 Biespectro bidimensional

La implementación de las ecuaciones (3.34) y (3.35) presenta una estructura muy similar a sus equivalentes unidimensionales con diferencias muy específicas debidas al aumento de dimensiones. Los métodos se presentan a continuación.

;--------------------------------------- Método indirecto función BISi2D(xmn) ; xmn := xmn - media(xmn) ; Matriz de entrada M := longitud(xmn,1) ; Número de filas, usando size N := longitud(xmn,2) ; Número de columnas, usando size for tn2:=0,tn2=N-1,tn2++ ; Necesidad de 4 ciclos for anidados for tm2:=0,tm2=M-1,tm2++ ; Para tn2 y tn1 de 0 a N-1 for tn1:=0,tn1=N-1,tn1++ ; Para tm2 y tm1 de 0 a M-1 for tm1:=0,tm1=M-1,tm1++ ; con incrementos de uno xmnt1 := rotar(xn,tm1,tn1) ; Corrimientos circulares usando xmnt2 := rotar(xn,tm2,tn2) ; circshift aux := xmn * xmnt1 * xmnt2 ; Usando operador .* ymn[tm1+1,tn1+1,tm2+1,tn2+1] := media(aux) ; Expectación E[.] usando mean end ; end ; end ; Al final de las iteraciones ymn end ; tiene el cumulante de orden 3 YKmn := fft4D(ymn) ; Usando fftn regresar(YKmn) ; Argumento de salida de la función

Usar el enfoque unidimensional de (4.2) resulta más complejo para el caso bidimensional directo. Por tal razón, se presentará un algoritmo general sin optimización para ejemplifi-car el método y más adelante se mencionarán las posibles optimizaciones y variantes al usar regiones reducidas. La estructura es muy similar al método indirecto usando cuatro

4.2 Algoritmos de estimación de Biespectros 55

ciclos for anidados para barrer toda la gama de frecuencias, el método se presenta a con-tinuación.

;--------------------------------------- Método directo función BISd2D(xmn) ; xmn := xmn - media(xmn) ; Matriz de entrada M := longitud(xmn,1) ; Número de filas, usando size N := longitud(xmn,2) ; Número de columnas, usando size XKmn := fft2D(xmn) ; Usando fft2 for kn2:=0,kn2=N-1,kn2++ ; for km2:=0,km2=M-1,km2++ ; Para kn2 y kn1 de 0 a N-1 for kn1:=0,kn1=N-1,kn1++ ; Para km2 y km1 de 0 a M-1 for km1:=0,km1=M-1,km1++ ; km3 := -(km1 + km2) mod M ; Bloque interior principal, aquí se kn3 := -(kn1 + kn2) mod N ; calculan los elementos del BIS aux := XKmn[km1+1,kn1+1] * XKmn[km2+1,kn2+1] * XKmn[km3+1,kn3+1] YK[km1+1,kn1+1,km2+1,kn2+1] := aux ; Direccionamiento del arreglo YK end ; Al final de las iteraciones YK con- end ; tiene Biespectro de xmn end ; end ; regresar(YK) ; Argumento de salida de la función

Una variante de estos algoritmos para optimizar tanto la segmentación de la memoria como para reducir el tiempo de procesamiento es utilizar arreglos 4-dimensionales reales en vez de complejos. En Matlab, como es lógico, los arreglos de datos complejos requie-ren el doble de memoria que los arreglos de datos reales. Así, se puede tener como argu-mentos de salida de la función la magnitud y la fase biespectral por separado, ganando con esto una reducción en el tiempo de ejecución.

4.2.5 Periodograma y Biperiodograma

La implementación de los métodos de estimación de promediado tanto para la PSD como para el BIS consisten principalmente en la segmentación de las señales de entrada to-mando en cuenta segmentos de igual longitud y un posible traslape, los cuales deben ser proporcionales al tamaño del arreglo original. Una vez que se logra dicha segmentación, tan solo se tiene que calcular el Poliespectro de cada segmento y al final promediar los estimados. A continuación se presenta un ejemplo de algoritmo de segmentación to-mando como argumentos de entrada los datos de la señal, el número estimado de seg-mentos por dimensión y el posible traslape entre ellos.

función BIP2D(xmn,seg,trp) ; Biperiodograma 2D xmn := xmn - media(xmn) ; M := longitud(xmn,1) ; Número de filas, usando size N := longitud(xmn,2) ; Número de columnas, usando size MT := trp+1 ; Apuntadores para el arreglo de da- NT := trp+1 ; tos originales Mseg := (M + (trp*(seg-1)))/seg ; Número de filas del segmento Nseg := (N + (trp*(seg-1)))/seg ; Número de columnas del segmento Bseg := 0 ; Inicializa suma de los Biespectros for i:=1,i=seg,i++ ; for j:=1,j=seg,j++ ; ix1 := vector(MT-trp a MT-trp+Mseg-1) ; Vector de índice de filas ix2 := vector(NT-trp a NT-trp+Nseg-1) ; Vector de índice de columnas

56 Capítulo 4. Desarrollo de algoritmos

aux := xmn[ix1,ix2] ; Arreglo temporal para el segmento YKseg := BISd2D(aux) ; BIS usando método directo Bseg := Bseg + YKseg ; Acumula los Biespectros NT := Nseg*j - trp*(j-1) + 1 ; Incrementa el apuntador horizontal end ; MT := Mseg*j - trp*(i-1) + 1 ; Incrementa el apuntador vertical NT := trp + 1 ; Reinicializa horizontal end ; YK := Bseg / (seg^2) ; Divide entre el total de segmentos regresar (YK) ;

Este algoritmo supone segmentos y traslapes que producen resultados enteros para las variables Mseg y Nseg. Se puede desarrollar un algoritmo para estimar los valores adecua-dos para el número de segmentos y el valor de traslape e incluirlo en el método o sim-plemente realizar los cálculos antes de estimar el Biperiodograma. Con el motivo de tener procedimientos más simples, en este trabajó se optó por la segunda opción, bajo riesgo de perder generalidad, para la utilización del Biperiodograma y otros algoritmos en el desa-rrollo de aplicaciones.

4.2.6 Bicoherencia

Si se analiza la ecuación (3.39) se puede observar que la estimación de la Bicoherencia implica la utilización del Biperiodograma y el promediado de otras operaciones que in-volucran la Transformada de Fourier de los datos de la señal. Se puede desarrollar un procedimiento muy similar al desarrollado para la estimación del Biespectro por el mé-todo directo con el objeto de calcular los términos necesarios para la Bicoherencia (sin promediar) y posteriormente implementar un algoritmo de Biperiodograma que incluya la segmentación de los datos así como el promediado de cada término y las operaciones fi-nales de raíz cuadrada y división.

El procedimiento para el cálculo de los términos de la Bicoherencia sería similar al de la función BISd2D cambiando el bloque interior principal por el siguiente pseudo-código.

función BICt2D(xmn) ; Nombre de la función . ; Igual que para BISd2D hasta el 4o. . ; ciclo for donde comienza el bloque . ; interior principal . ; km3 := -(km1 + km2) mod M ; Bloque interior principal, aquí se kn3 := -(kn1 + kn2) mod N ; calcula cada término aux1 := XKmn[km1+1,kn1+1] * XKmn[km2+1,kn2+1] * XKmn[km3+1,kn3+1] aux2 := abs(XKmn[km1+1,kn1+1] * XKmn[km2+1,kn2+1])^2 aux3 := abs(XKmn[km3+1,kn3+1])^2 ; YK[km1+1,kn1+1,km2+1,kn2+1] := aux1 ; YK es el BIS de xmn (numerador) PK1[km1+1,kn1+1,km2+1,kn2+1] := aux2 ; Primer término del denominador PK2[km1+1,kn1+1,km2+1,kn2+1] := aux3 ; Segundo término del denominador . ; Igual que BISd2D . ; regresar (YK,PK1,PK2) ; Términos como argumentos de salida

4.2 Algoritmos de estimación de Biespectros 57

Combinando este procedimiento con el algoritmo para el cálculo del Biperiodograma se obtiene el método completo para la estimación de la Bicoherencia, las modificaciones necesarias para el segundo procedimiento se resumen a continuación.

función BIC2D(xmn,seg,trp) ; Bicoherencia 2D con Biperiodograma . ; Igual que BIP2D . ; Bseg := 0 ; Inicializa suma de los Biespectros P1seg := 0 ; Se añaden dos lineas de iniciali - P2seg := 0 ; zación y se continúa como en BIP2D . ; . ; Todo igual hasta aux := ... aux := xmn[ix1,ix2] ; Arreglo temporal para el segmento YKseg,P1,P2 := BICt2D(aux) ; Términos de la BIC para el segmento Bseg := Bseg + YKseg ; Acumula los tres términos P1seg := P1seg + P1 ; Líneas añadidas hasta el cálculo P2seg := P2seg + P2 ; del nuevo NT . ; Sigue igual hasta el segundo end . ; num := abs(Bseg / (seg^2)) ; Numerador completo B1 := P1seg / (seg^2) ; Promediado del primer término den. B2 := P2seg / (seg^2) ; Promediado del segundo término den. den := (B1 * B2) ^ (1/2) ; Usando .* y .^ YK := num / den ; Usando ./ regresar (YK) ; Regresa el estimado total

Como puede observarse, el procedimiento de estimación para la Bicoherencia hace uso de una combinación de estructuras desarrolladas para el cálculo del Biespectro (método directo) y la estimación del Biperiodograma. De esto se puede deducir que la Bicoheren-cia, además de ser un estimado normalizado del Biespectro presenta también las ventajas asociadas al Biperiodograma en cuanto a la obtención de estimados estadísticamente más confiables.

4.2.7 Biespectro Modificado

Para el caso del Biespectro Modificado no se requiere un procedimiento tan complejo como el de la Bicoherencia, ya que éste representa tan solo un enmascaramiento de la magnitud a través de la fase. El cálculo del BISM puede efectuarse sobre los datos obte-nidos mediante las funciones descritas anteriormente para el Biespectro usando el si-guiente procedimiento.

función BISM2D(xmn) ; BX := BISd2D(xmn) ; Se obtiene el Biespectro MP := (pi - abs( fase(YK) )) / pi ; Máscara de fase, usando angle YK := abs(BX) * MP ; Enmascaramiento usando .* regresar (YK) ;

Como puede notarse, el procedimiento para el Biespectro Modificado resulta muy simple una vez que se han desarrollado funciones para el cálculo del Biespectro. De la misma forma, pueden utilizarse los procedimientos de estimación de Biperiodogramas para ob-tener estimados más confiables del Biespectro Modificado e incluso calcular éste a partir de Biespectros obtenidos mediante el Biperiodograma.

58 Capítulo 4. Desarrollo de algoritmos

4.3 Obtención de regiones reducidas

La estimación del Biespectro para secuencias bidimensionales lleva consigo implicacio-nes y requerimientos computacionales, presentados en la sección 3.5, que deben ser considerados con mucha atención a la hora de implementarse.

Como se dijo en el capítulo anterior (sección 3.3), a la región reducida mínima del Biespectro se le conoce también como región no redundante. Aparentemente, encontrar una región mínima para el dominio de soporte unidimensional puede representar una pe-queña diferencia y contener sólo unos cuantos elementos menos. En contraste, el encon-trar una región no-redundante para el Biespectro de señales bidimensionales representa una gran diferencia ya que, cada punto que pueda omitirse de la región sombreada del plano M de la Figura 3.3 representa la omisión de un plano N completo en el dominio 4-dimensional, equivalente al dominio completo para señales de una dimensión.

En otras palabras, si se logra reducir aún más la región sombreada del primer plano de la figura se eliminarán N x N elementos de la región resultante por cada punto excluido.

Algunos autores [28], han definido, de forma teórica, regiones de soporte no-redundantes para el Biespectro de señales de dos dimensiones. Sin embargo, han presentado la infor-mación de una forma muy confusa, no muestran los procedimientos mediante los cuales obtienen las regiones resultantes y no presentan expresiones o definiciones cerradas que ayuden a desarrollar algoritmos de manera directa. Otros autores [29], han proporcio-nado expresiones cerradas para regiones reducidas del Biespectro pero no se han presen-tado pruebas exhaustivas de dichas regiones, de hecho, el número estimado de elementos para señales de tamaño específico contradicen los resultados de [28]. Tales contrarieda-des llevaron a un estudio analítico de los resultados presentados en ambas publicaciones, comprobando y concluyendo que la información referente a regiones no-redundantes en [29] está mal planteada.

La búsqueda de regiones reducidas del Biespectro nace de la necesidad de “economizar” tanto espacio de memoria como tiempo de procesamiento, por esta razón, es deseable que cualquier estudio a este respecto sea enfocado directamente a la consecución de procedi-mientos computacionales más eficientes. Parte del tiempo de esta investigación fue dedi-cado a la búsqueda de regiones reducidas no redundantes, lo cual arrojó como resultado dos algoritmos y sus respectivas implementaciones. Uno de éstos es un procedimiento original de “fuerza bruta” basado en algoritmos simples de comparación, búsqueda y or-denamiento. El otro, es un algoritmo analítico basado en los resultados presentados en [28] ambos se presentan en las secciones siguientes.

4.3.1 Desarrollo de un algoritmo de “fuerza bruta”

Utilizando las igualdades en (3.37) y considerando la posibilidad de redundancia en los argumentos, se puede diseñar un procedimiento que, tome como variables de entrada las

4.3 Obtención de regiones reducidas 59

frecuencias km1, kn1, km2, kn2 y las dimensiones M y N; arroje como salida las simetrías no redundantes para esa combinación de entrada. Además, se debe considerar las premisas en cuanto al manejo de arreglos presentadas en la sección 4.2.3. Dicho procedimiento se muestra a continuación.

función obtener_sims( [km1,kn1,km2,kn2],M,N) ; [km1,kn1,km2,kn2] := [km1,kn1,km2,kn2] - 1 ; s1 :=[km1 kn1 km2 kn2 ] ; Se obtienen las primeras 6 s2 :=[km2 kn2 km1 kn1 ] ; equivalencias y luego se s3 :=[-(km1+km2) -(kn1+kn2) km1 kn1 ] ; hacen negativas para obtener s4 :=[-(km1+km2) -(kn1+kn2) km2 kn2 ] ; las frecs de sus conjugados s5 :=[km1 kn1 -(km1+km2) -(kn1+kn2) ] ; s6 :=[km2 kn2 -(km1+km2) -(kn1+kn2) ] ; eqs :=[s1;s2;s3;s4;s5;s6;... ; Se concatenan las equivalen -s1;-s2;-s3;-s4;-s5;-s6] ; cias, arreglo de 12x4 [ eqs[:,1],eqs[:,3] ] := [ eqs[:,1],eqs[:,3] ] mod M ; mapeo de km’s [ eqs[:,2],eqs[:,4] ] := [ eqs[:,2],eqs[:,4] ] mod N ; mapeo de kn’s eqs := eqs + 1 ; Mapeo 1er elemento = 1 eqs := quitar_replicas(eqs) ; Usando union regresar(eqs) ; Coordenadas no.redundantes

Usando este pequeño proceso, se puede desarrollar un algoritmo de búsqueda de sime-trías no redundantes para cada 4-upla y obtener una región reducida no redundante cuyos elementos sean suficientes para calcular el Biespectro completo. El diagrama de flujo de la Figura 4.3 esquematiza dicho algoritmo.

Figura 4.3 Diagrama de flujo para obtener una región no redundante

60 Capítulo 4. Desarrollo de algoritmos

El algoritmo arroja como salidas dos conjuntos: R, que es el conjunto reducido no-redun-dante y S, que es el conjunto de todas las simetrías de R. Para corroborar la eficacia del algoritmo, S debe contener todas las 4-uplas desde (0,0,0,0) hasta (M-1,N-1,M-1,N-1) y debe probarse, que se puede reproducir el Biespectro completo a partir de las 4-uplas contenidas en R.

La implementación en Matlab del diagrama en la Figura 4.3 produjo la función redbis. Se hicieron pruebas sobre dicha función para comprobar que R es una región reducida no redundante del Biespectro. A manera de ejemplo, se presenta el caso en que M=N=3. Para estos valores de M y N, el arreglo del Biespectro completo estaría formado por 34=81 elementos. Se probó el método utilizando los valores ya mencionados con lo que se obtuvo el conjunto de 4-uplas de la Tabla 4.1.

Tabla 4.1 Coordenadas de la región no-redundante para M=N=3

k Coordenadas km1 0 0 0 0 0 0 0 0 0 1 1 1 1 kn1 0 0 0 0 0 1 1 1 1 0 0 1 2 km2 0 0 1 1 1 0 1 1 1 1 1 1 1 kn2 0 1 0 1 2 1 0 1 2 0 1 1 2

Como se puede observar, el conjunto reducido está formado solo por trece 4-uplas, lo cual equivale aproximadamente a una sexta parte del Biespectro completo. Para compro-bar que el conjunto de 4-uplas encontrado por el algoritmo sea una región reducida no-redundante, se deben obtener las simetrías de cada 4-upla y comprobar que éstas forman el total de 4-uplas del Biespectro. Para tal comprobación, se empleó el procedimiento de obtención de simetrías obtener_sims introduciendo como datos de entrada cada una de las coordenadas de la Tabla 4.1. Se sumó una unidad a todas las coordenadas para mane-jar coordenadas propias de arreglos en Matlab y se restó la unidad al conjunto resultante con el propósito opuesto.

Para la primer 4-upla (0,0,0,0), las equivalencias se reducen todas a la misma coordenada por lo que ésta no tiene equivalentes. Para las coordenadas restantes se obtuvieron con-juntos de 1, 5 y 11 coordenadas equivalentes. A continuación se presentan todos los re-sultados obtenidos en forma de argumentos de la función biespectral en el mismo orden que en la Tabla 4.1.

(0,0,0,0)B

(0,0,0,1) (0,1,0,0)(0,2,0,1)(0,2,0,0)(0,0,0,2)(0,1,0,2)

B BBBBB

=====

(0,0,1,0) (0,0,2,0)(1,0,0,0)(1,0,2,0)(2,0,0,0)(2,0,1,0)

B BBBBB

=====

4.3 Obtención de regiones reducidas 61

(0,0,1,1) (0,0,2,2)(1,1,0,0)(1,1,2,2)(2,2,0,0)(2,2,1,1)

B BBBBB

=====

(0,0,1,2) (0,0,2,1)(1,2,0,0)(1,2,2,1)(2,1,0,0)(2,1,1,2)

B BBBBB

=====

(0,1,0,1) *(0,2,0,2)B B=

(0,1,1,0) *(1,1,0,2)(0,1,2,2) *(1,1,2,0)(0,2,1,1) *(2,0,0,2)(0,2,2,0) *(2,0,1,1)(1,0,0,1) *(2,2,0,1)(1,0,2,2) *(2,2,1,0)

B BB BB BB BB BB B

== == == == == =

(0,1,1,1) *(1,2,0,2)(0,1,2,1) *(1,2,2,2)(0,2,1,2) *(2,1,0,1)(0,2,2,2) *(2,1,1,1)(1,1,0,1) *(2,2,0,2)(1,1,2,1) *(2,2,1,2)

B BB BB BB BB BB B

== == == == == =

(0,1,1,2) *(1,2,0,1)(0,1,2,0) *(1,2,2,0)(0,2,1,0) *(2,0,0,1)(0,2,2,1) *(2,0,1,2)(1,0,0,2) *(2,1,0,2)(1,0,2,1) *(2,1,1,0)

B BB BB BB BB BB B

== == == == == =

(1,0,1,0) *(2,0,2,0)B B=

(1,0,1,1) *(2,0,2,1)(1,0,1,2) *(2,0,2,2)(1,1,1,0) *(2,1,2,0)(1,1,1,2) *(2,1,2,2)(1,2,1,0) *(2,2,2,0)(1,2,1,1) *(2,2,2,1)

B BB BB BB BB BB B

== == == == == =

(1,1,1,1) *(2,2,2,2)B B=

(1,2,1,2) *(2,1,2,1)B B=

Sumando el número de equivalencias encontradas para cada coordenada de la Tabla 4.1 resultarán 0+5+5+5+5+1+11+11+11+1+11+1+1=68 elementos. Sumando estas equiva-lencias con los elementos de la tabla se obtienen 68+13=81 elementos, valor que corres-ponde al número de elementos del arreglo biespectral para M=N=3. Además, el conjunto de las equivalencias obtenidas con la comprobación no se repiten por lo que se puede concluir que el conjunto de coordenadas de la Tabla 4.1 representa una región no redun-dante para el Biespectro de señales de 3x3. En la Tabla 4.2 se muestran algunas relacio-nes de elementos para la región no redundante y las dimensiones del arreglo biespectral.

Tabla 4.2 Num. de elementos de la región reducida para diferentes dimensiones

M=N 4 6 8 10 12 14 16 32 Elementos 31 129 375 885 1803 3301 5591 87895

%BIS 12.1 9.95 9.155 8.85 8.69 8.59 8.53 8.38

4.3.2 Desarrollo de un algoritmo analítico

Además del procedimiento mostrado anteriormente, se desarrolló paralelamente un nuevo algoritmo partiendo de la información proporcionada por [28]. En ese trabajo, se definen regiones no-redundantes de forma gráfica, aunque no se da detalle de los puntos exactos que delimitan cada región ni presentan información acerca de cómo se obtienen dichas regiones.

62 Capítulo 4. Desarrollo de algoritmos

Se dedujo empíricamente, que las regiones reducidas mostradas en [28] parten de la suposición hecha en torno a la Figura 3.3. En la figura se muestra el producto de dos pla-nos que generan una región 4 dimensional reducida para el Biespectro de señales bidi-mensionales. Sin embargo, dicha región presenta ciertas redundancias específicamente en los bordes del triángulo sombreado del plano M. Esta afirmación se hace a partir de las gráficas de no redundancia presentadas en [28]. En la Figura 4.4 se muestra una versión acondicionada de dichas gráficas en donde se puede ver claramente las redundancias mencionadas.

Figura 4.4 Regiones no-redundantes del Biespectro Bidimensional

La Figura 4.4a muestra la región reducida sin incluir los bordes del triángulo mencionado anteriormente, las demás gráficas (b – d) muestran en su primer plano, los bordes del triángulo y en su segundo plano la correspondiente región sin redundancias. Finalmente las gráficas e, f y g corresponden al plano v para los vértices del triángulo.

Conociendo gráficamente estas regiones, se puede diseñar un algoritmo a base de ciclos for cuyas variables tengan los límites establecidos por las regiones gráficas aquí mostra-das. Tales límites se establecen con la definición de las ecuaciones para las rectas que delimitan cada región así como las ecuaciones del área de cada región sombreada. Final-mente, se adecua el algoritmo para representar los arreglos usando las convenciones para Matlab. A continuación se muestra un fragmento de la estructura del algoritmo, los de-

4.3 Obtención de regiones reducidas 63

más fragmentos se desarrollan con la misma estructura, únicamente cambiando los lími-tes de las variables para los ciclos for.

función redreg(M,N) ; Dimensiones como argumento rbis := matriz([]) ; Inicializa el conjunto reducido N_2= N/2 ; N_3= N/3 ; N2_3= 2*N/3 ; Se establecen estas constantes para M_3= M/3 ; simplificar la estructura de los M_2= M/2 ; ciclos M2_3= 2*M/3 ; ;----------------------------------------Primer región de no redundancia for u1 :=1,u1=M_3,u1++ ; Los límites de estos 4 ciclos ani- for u2 :=1,u2=u1-1,u2++ ; dados representan el producto del for v1 :=0,v1=(N-1),v1++ ; área bajo el triángulo rectángulo for v2 :=0,v2=(N-1),v2++ ; de vértices (0,0),(M/3,0),(M/3,M/3) rbis=[rbis; [u1+1 u2+1 v1+1 v2+1]] ; y el area de todo el plano N end ; Se concatena el conjunto reducido end ; con los nuevos elementos resultan- end ; tes en cada iteración end ; for u1:=(M_3+1),u1=(M_2-1),u1++ ; Para estos otros ciclos se cubre el for u2:=(M-2*u1-1),u2=1,u2-- ; producto del área bajo el triángulo for v1:=0,v1=(N-1),v1++ ; con vértices (M/3,0),(M/3,M/3), for v2:=0,v2=(N-1),v2++ ; (M/2,0) y el plano N completo rbis=[rbis; [u1+1 u2+1 v1+1 v2+1]] ; Se concatena una vez más añadien - end ; do los elementos comprendidos en end ; esta nueva región. Con esto se cu- end ; bre totalmente la región de la end ; Figura 4.4a . ; Se desarrollan las demás regiones . ; bajo la misma mecánica . ; Al finalizar, rbis contiene el con regresar (rbis) ; junto no redundante

Se implementó un programa en base a lo mencionado y se le aplicaron las mismas prue-bas que al procedimiento obtenido por “fuerza bruta”. Se comprobó que para valores de M y N múltiplos de 6 se obtienen regiones no redundantes y para valores diferentes se obtienen solo regiones reducidas con algunas redundancias. Esto se debe a que los puntos que delimitan las regiones generalmente están relacionados con los valores M/2, N/2, M/3, N/3, 2M/3 y 2N/3. Como el número de muestras siempre es un número entero, tales puntos solo arrojan resultados enteros para M’s y N’s múltiplos de 6.

4.3.3 Biespectro a partir de regiones no redundantes

La implementación de funciones para la obtención de regiones no redundantes reduce considerablemente la necesidad de enormes recursos de memoria. Sin embargo, la natu-raleza de estos procedimientos hace que su ejecución sea relativamente lenta ya que están enfocados a buscar 4-uplas no redundantes para el primer caso y a seleccionar uno por uno los elementos para el segundo. Esto repercute en la implementación de los algorit-mos para la estimación del Biespectro si se requiere obtener resultados a partir de la re-gión no redundante, ya que las necesidades de tiempo de procesamiento resultan todavía muy demandantes.

64 Capítulo 4. Desarrollo de algoritmos

Para solventar esta dificultad, es recomendable manejar los procedimientos de obtención de regiones reducidas y estimación de Biespectros por separado. Es decir, utilizar pri-mero una función de obtención de regiones reducidas para diversos valores de M y N con el objeto de crear una base de datos que contenga los conjuntos de coordenadas no re-dundantes para valores específicos de M y N. Posteriormente, modificar los algoritmos de estimación de Biespectros para que tome como argumento de entrada las coordenadas de la región reducida y actúe solo sobre éstas. A continuación se presenta tal modifica-ción para el caso del método directo.

función BISr(xmn,rbis) ; Región reducida como argumento M := longitud(xmn) ; Supone señal de entrada M=N r := longitud(rbis,1) ; Número de elementos de rbis xmn := xmn-media(xmn) ; XK := fft2D(xmn) ; m3 := rbis[:,1] + rbis[:,3]-2 ; Mapea los valores de la región re- n3 := rbis[:,2] + rbis[:,4]-2 ; ducida para kmn3 m3 := -m3 mod M ; n3 := -n3 mod M ; kmn1 :=(rbis[:,2]-1)*M+rbis(:,1) ; Mapea en forma unidimensional las kmn2 :=(rbis[:,4]-1)*M+rbis(:,3) ; coordenadas de la región reducida kmn3 :=(n3-1)*M+m3 ; bis := vector_columna(r) ; Inicializa el arreglo biespectral bi := XK(kmn1) * XK(kmn2) * XK(kmn3) ; Calcula el BIS en un solo paso .* regresar (bi) ; Arreglo 1D de r elementos

El algoritmo presentado hace uso del direccionamiento unidimensional descrito en la sección 4.2.3 facilitando el cálculo del Biespectro para los elementos de la región redu-cida en un solo paso. El argumento de salida de la función es un vector columna que contiene el valor del Biespectro para la coordenada correspondiente en la región redu-cida. En otras palabras, la información resultante al usar por separado los métodos de obtención de regiones no redundantes y estimación de Biespectros son: Una matriz de coordenadas de rx4 y un vector complejo de longitud r conteniendo los valores para el Biespectro.

Los requerimientos de memoria al emplear regiones reducidas son considerablemente menores ya que solo se calcula una parte del Biespectro y no se utilizan arreglos de cua-tro dimensiones para almacenarlos. Por ejemplo, para calcular el Biespectro completo de una imagen de 32x32 píxeles se requiere un arreglo complejo de 324=1048576 elementos para su almacenamiento. En contraparte, si se utiliza el método de regiones reducidas se requieren dos arreglos, uno de 87895x4=351580 elementos y el otro complejo de 87895 elementos (valor tomado de la Tabla 4.2 para M=N=32). En total el ahorro en términos de elementos para el almacenamiento es de 10048576-(351580+87895)=609101 ele-mentos.

Además, si los valores de N y M son menores a 256, se pueden usar formatos de números de 8 bits sin signo para almacenar las regiones reducidas y así contribuir a un mayor aho-rro de memoria. Usando este artificio para almacenar los datos del ejemplo se tiene un

4.4 Desenvolvimiento de fase 65

ahorro de memoria en términos computacionales de ¡14.32 Mbytes! (se requieren 16M bytes para almacenar el arreglo biespectral completo).

En cuanto al tiempo de procesamiento también se logra una mejora considerable si se cuenta previamente con regiones no redundantes para valores específicos de M y N. Esto se debe al enfoque unidimensional del nuevo algoritmo para el Biespectro ya que no tiene que emplear tiempo en ciclos for anidados. Para el ejemplo que se ha estado manejando, el contraste en tiempos de procesamiento es de 1 minuto para el método completo y de 0.15 segundos para el nuevo método. Por lo que se puede concluir que el uso de regiones no redundantes realmente repercute en el ahorro de recursos computacionales.

Se puede utilizar la técnica descrita en esta sección para modificar los demás métodos de estimación de Biespectros y Biperiodogramas con fines de optimización. Las funciones finales que se utilizaron en las aplicaciones de esta tesis cuentan con dicha optimización, en el apéndice B se encuentra una referencia completa de éstas.

4.4 Desenvolvimiento de fase

Se ha mencionado que la solución al problema del envolvimiento de fase resulta indis-pensable si se quieren obtener resultados coherentes al aplicar métodos de reconstruc-ción. Además, surgen otras complicaciones al no contar con un procedimiento para el desenvolvimiento de fase de cuatro dimensiones.

La solución que se propone a este respecto, se basa en la naturaleza de la fase biespectral y en la utilización de un procedimiento de fase de dos dimensiones. Dado que se está abordando el problema desde una perspectiva distinta a la directa, los resultados obteni-dos tendrán repercusiones para su aplicación las cuales se explicarán más adelante.

Recordando la definición para obtener el Biespectro por el método directo en (3.35) como función de la transformada de Fourier (2D) de la señal ( , )m nX k k :

1 2 1 2 3( , ) ( ) ( ) *( )B X X X=k k k k k (4.3)

Donde: 1 1 1,m nk k=k 2 2 2,m nk k=k y 3 1 2 1 2,m m n nk k k k= + +k . Expresando (4.3) en su forma polar se tiene:

1 2 3

1 2 3

( ) ( ) ( )1 2 1 2 3

[ ( ) ( ) ( )]1 2 3

( , ) ( ) ( ) ( )

( ) ( ) ( )

j j j

j

B X e X e X e

X X X e

φ φ φ

φ φ φ

+ −

= ⋅ ⋅

= ⋅ ⋅

k k k

k k k

k k k k k

k k k (4.4)

Donde ( )φ k es la fase de ( )X k . Entonces, se puede identificar en (4.4) que la magnitud del Biespectro se forma por productos de magnitudes y su fase por la suma de fases, es decir, se puede calcular por separado la fase del Biespectro en función de la fase de la transformada de Fourier de la señal mediante:

66 Capítulo 4. Desarrollo de algoritmos

1 2 1 2 3( , ) ( ) ( ) ( )B φ φ φ∠ = + −k k k k k (4.5)

Calcular la fase del Biespectro de esta forma no resuelve completamente el problema del envolvimiento, por lo que es necesario desenvolver antes la fase de la transformada de Fourier de la señal. La ventaja ganada al hacerlo de esta forma, es que el algoritmo de desenvolvimiento de fase será para una función bidimensional y no para una de cuatro dimensiones. Se han estudiado varios algoritmos de desenvolvimiento de fase en dos di-mensiones, el procedimiento que se presenta en [26] resulta conveniente, ya que se basa en la utilización de la transformada discreta coseno de dos dimensiones (función incorpo-rada en Matlab) y se puede implementar sin conocer información adicional de la aplica-ción, a continuación se describe el método en forma resumida.

Se comenzará considerando la fase real desenvuelta (unwrapped) φ(r), en términos de la fase envuelta φ(r)w tal que:

( ) ( ) 2 ( )w nφ φ π= +r r r (4.6)

Donde r se refiere a la posición del píxel y n(r) es una función entera. La meta de este método será encontrar n(r). Es común que en los algoritmos de desenvolvimiento de fase se calculen las diferencias entre los píxeles vecinos en la fase envuelta, con el objeto de comparar estas diferencias con un umbral predeterminado y así decidir si se ha presen-tado una fluctuación de fase. Aparte de un escalamiento, esto resulta equivalente a obte-ner la derivada parcial de la fase envuelta. En este método se sigue un camino parecido, calculando el Laplaciano bidimensional de (4.6) y resolviendo para n(r). Formular el pro-blema en términos del operador de Laplace ofrece ventajas distintas. Se puede definir:

[ ]2 2 21( ) ( ) ( )2 wn φ φπ

−⊥ ⊥ ⊥= ∇ ∇ −∇r r r (4.7)

Donde 2⊥∇ y 2−

⊥∇ son los operadores Laplacianos bidimensionales directo e inverso respectivamente. La ecuación (4.7) puede ser resuelta en términos de la transformada rápida de Fourier (FFT) de la forma:

2

2 1 2 22

4( , ) ( ) [ ( , )]f x y FFT p q FFT f x y

Nπ −

⊥∇ =− + (4.8)

2

2 12 2 2

[ ( , )]( , )

4 ( )FFT g x yNg x y FFT

p qπ− −⊥

⎧ ⎫⎪ ⎪⎪ ⎪∇ =− ⎨ ⎬⎪ ⎪+⎪ ⎪⎩ ⎭ (4.9)

Donde (x,y) y (p,q) son las coordenadas de cada píxel en el dominio espacial y en el do-minio espectral de Fourier respectivamente y N es el tamaño de la imagen en píxeles. Se puede resolver (4.7) definiendo la cantidad compleja:

( ) exp[ ( )] exp [ ( ) 2 ( )

exp[ ( )]exp[ 2 ( )]

wP i r i n

i i n

φ φ π

φ π

= = −

= −

r r r

r r 1→ (4.10)

4.4 Desenvolvimiento de fase 67

Se reconoce que 2 21Im( )P P φ⊥ ⊥∇ =∇ , donde Im(.) denota la parte imaginaria. De ahí:

2 2 2cos (sin ) sin (cos )w w w wφ φ φ φ φ⊥ ⊥ ⊥∇ = ∇ − ∇ (4.11)

La ecuación (4.11) revela que es posible obtener el Laplaciano de la fase desenvuelta en función únicamente a partir de la fase envuelta. La solución a la ecuación (4.7) es única una vez que se han establecido condiciones de frontera junto con la condición de que n(r) sea entera.

La condición de que n(r) sea entera puede conseguirse redondeando la solución obtenida de (4.7). Aplicando técnicas de Fourier para calcular los Laplacianos, se imponen condiciones de frontera de periodicidad a la solución obtenida para n(r), lo cual, gene-ralmente no es realista.

Dado que n(r) es entera, es más realista que el gradiente de n(r) normal a los bordes se desvanezca. Esta nueva condición de frontera se puede implementar fácilmente usando la transformada rápida del coseno (DCT) en vez de la FFT.

Aunque la solución a (4.7) es única, puede ser que no desenvuelva completamente la fase dado que las condiciones de frontera son aproximadas y se satisface la condición de que n(r) sea entera a través de redondeo. Sin embargo, es posible usar la fase parcialmente desenvuelta como entrada para una iteración más del algoritmo. Usando (4.8) y (4.9) la solución iterativa para la fase desenvuelta es:

round1( , ) ( , )

( , ) ( , ) 22

jj j

x y x yx y x y

φ φφ φ π

π+′⎡ ⎤−⎢ ⎥= + ⎢ ⎥⎣ ⎦

(4.12)

Donde j es el índice de iteración (con j=0 es la fase original envuelta) y

1 2 21

2 2

1 2 21

2 2

FFT cos FFT [( )FFT(sen )]( , ) FFT

( )FFT sen FFT [( )FFT(cos )]

FFT( )

w w

w w

p qx y

p qp q

p q

φ φφ

φ φ

−−

−−

⎛ ⎞+ ⎟⎜′ ⎟= ⎜ ⎟⎜ ⎟⎟⎜ +⎝ ⎠⎛ ⎞+ ⎟⎜ ⎟− ⎜ ⎟⎜ ⎟⎟⎜ +⎝ ⎠

(4.13)

La ecuación (4.12) proporciona un procedimiento iterativo que puede implementarse computacionalmente para obtener la fase desenvuelta en dos dimensiones. Este método es una reproducción del método introducido por [26]. El procedimiento implementado para desenvolver la fase de una señal de dos dimensiones se presenta a continuación.

función UNWRphi (phiw,j) ; Fase envuelta y número de itera - [M,N] := longitud(phiw,1,2) ; ciones como argumento de entrada [p,q] := definir_dominio(0:N-1,0:M-1) ; Usando meshgrid pqf := p^2+q^2 ; Usando .^ pqf[1,1] := 1 ; Para evitar división entre cero cphi := coseno(phiw) ; Funciones cos y sin de Matlab sphi := seno(phiw) ; Cphi := dct(cphi) ; Usando dct2 e idct2 para la Sphi := dct(sphi) ; inversa (dct_1)

68 Capítulo 4. Desarrollo de algoritmos

prim1:= dct_1(dct(cphi*dct_1(pqf*Sphi))/pqf) ; usando .* y ./ prim2:= dct_1(dct(sphi*dct_1(pqf*Cphi))/pqf) ; prim := prim1 - prim2 ; Cálculo de phi prima phi := phiw ; Inicializa la fase desenvuelta for i:=1,i:j,i++ ; Para iteraciones phi=phi+2*pi*round((phiprim-phi)/(2*pi)); Al final de las iteraciones end ; phi contiene una versión desenvuel- regresar (phi) ; ta de la fase phiw

La Figura 4.5 presenta una imagen así como dos representaciones de su fase envuelta (FFT). Se desenvolvió la fase de la transformada de Fourier de la imagen usando el pro-cedimiento desarrollado y se obtuvieron los resultados de la Figura 4.6. En esta otra fi-gura, se presenta la transformada de Fourier inversa utilizando la fase desenvuelta, como se puede apreciar, la imagen es idéntica a la original por lo que la fase desenvuelta cum-ple tanto con los valores de una fase de Fourier real sí como con las simetrías necesarias. En las gráficas de superficie mostradas en la Figura 4.5c y la Figura 4.6c se observa que la fase envuelta presenta cambios muy abruptos mientras que la fase desenvuelta presenta un comportamiento más suave y definido.

a) Imagen b) Espectro (Fase) c) Fase en superficie

Figura 4.5 Fase envuelta

a) Imagen b) Espectro (Fase) c) Fase en superficie

Figura 4.6.Fase desenvuelta

El procedimiento para calcular el Biespectro con la fase desenvuelta supone el cálculo por separado de magnitud y fase. Por lo tanto, se requiere modificar los algoritmos de estimación para lograr dicho propósito. A continuación se muestra la modificación de la función para el método directo usando regiones no redundantes, cabe destacar que al usar la propiedad X*(k) = X(-k) de la FFT el término negativo en (4.5) se hace positivo.

función BISrMP(xmn,rbis) ; Región reducida como argumento M := longitud(xmn) ; Supone señal de entrada M=N r := longitud(rbis,1) ; Número de elementos de rbis xmn := xmn-media(xmn) ; XK := fft2D(xmn) ; XKM := abs(XK) ; Magnitud de la imagen

4.5 Algoritmos de reconstrucción 69

XKP := fase(XK) ; Fase de la imagen usando angle XKP := unwrphi(XKP,1) ; Desenvolvimiento de fase de imagen m3 := rbis[:,1] + rbis[:,3]-2 ; Mapea los valores de la región re- n3 := rbis[:,2] + rbis[:,4]-2 ; ducida para kmn3 m3 := -m3 mod M ; n3 := -n3 mod M ; kmn1 :=(rbis[:,2]-1)*M+rbis(:,1) ; Mapea en forma unidimensional las kmn2 :=(rbis[:,4]-1)*M+rbis(:,3) ; coordenadas de la región reducida kmn3 :=(n3-1)*M+m3 ; biM := vector_columna(r) ; Inicializa el arreglo para magnitud biP := vector_columna(r) ; Inicializa el arreglo para fase biM := XKM(kmn1) * XKM(kmn2) * XKM(kmn3); Calcula la magnitud con .* biP := XKp(kmn1) + XKM(kmn2) + XKM(kmn3); Calcula la fase desenvuelta regresar (biM, biP) ; Magnitud y fase por separado

4.5 Algoritmos de reconstrucción

Como se dijo en la sección 3.7, los procedimientos para la reconstrucción de este trabajo se basan en la implementación de los desarrollos presentados en [3] y [4]. Tales publicaciones presentan ecuaciones para la reconstrucción del espectro de la señal a partir de su Biespectro, las cuales es necesario implementar como procedimiento computacio-nal. Dichas ecuaciones se presentan a continuación

3

6( , , , ) ( , ,3 ,3 )

( , )( , ,2 ,2 ) (2 ,2 ,2 ,2 )B i j i j B i j i j

X i jB i j i j B i j i j

= (4.14)

1

2

1

2( , ) ( , , , )

N

ki j i j ki kj

== Φ∑ (4.15)

Donde X es la transformada de Fourier de la imagen, B es su Biespectro, φ la fase de la FFT de la imagen y Φ la fase de su Biespectro

2 2 1 2 1 2

1 1 1 1

2 2 1 1 2 22 20 0 , 0 , 0

1 2 1( , ) ( , , , ) ( , , , )

3

M N M N

u v u u v vu v u v u v u v u v

MN M Nγ

− − − −

= = = == Γ − Γ∑ ∑ ∑ ∑ (4.16)

2 2 1 2 1 2

1 1 1 1

2 2 1 1 2 22 20 0 , 0 , 0

1 2 1( , ) ( , , , ) ( , , , )

3

M N M N

u v u u v vu v u v u v u v u v

MN M Nφ

− − − −

= = = == Φ − Φ∑ ∑ ∑ ∑ (4.17)

Donde γ es el logaritmo de la magnitud de la FFT de la imagen, Γ es el logaritmo de la magnitud de su Biespectro, φ la fase de la FFT de la imagen y Φ la fase de su Biespectro.

Las ecuaciones (4.14) y (4.15) corresponden a [3] mientras que las ecuaciones (4.16) y (4.17) corresponden a [4]. Para ambos casos, la reconstrucción de la fase debe hacerse usando la fase desenvuelta del Biespectro, de lo contrario se obtendrán resultados como el que se muestra en la Figura 3.5b.

A continuación se presentan los procedimientos correspondientes a las ecuaciones (4.14) y (4.15).

70 Capítulo 4. Desarrollo de algoritmos

;---------------------------------------Reconstrucción de Magnitud función Praugh(Bis) ; Biespectro 4D como entrada [M,N]:=longitud(Bis,1,2) ; Usando size for m:=0,m=M-1,m++ ; for n:=0,n=N-1,n++ ; m2 := 2*m mod M ; n2 := 2*n mod N ; m3 := 3*m mod M ; n3 := 3*n mod N ; t1 := abs(B[m+1,n+1,m+1,n+1]^3) ; Calcula los términos por t2 := abs(B[m+1,n+1,m3+1,n3+1]) ; separado t3 := abs(B[m+1,n+1,m2+1,n2+1]) ; t4 := abs(B[m2+1,n2+1,m2+1,n2+1]) ; Xmag[m,n] := ((t1*t2)/(t3*t4))^(1/6) ; Calcula un elemento de X(n,m) end ; end ; regresar(Xmag) ; ;---------------------------------------Reconstrucción de Fase función Xraugh(Bphi) ; Fase 4D como entrada [M,N]:=longitud(Bphi,1,2) ; Usando size for m:=0,m=M-1,m++ ; La fase proporcionada debe estar for n:=0,n=N-1,n++ ; desenvuelta Xphi[m,n] := 0 ; Inicializa el elemento a calcular Nk := M*N /2 - 1 ; M*N # de elementos de la imagen for k:=1,k=Nk,k++ ; mk := 2*k mod M ; nk := 2*k mod N ; Xphi[m,n] := Xphi[m,n] + Bphi[m+1,n+1,mk+1,nk+1] ; end end ; end ; regresar(Xphi) ;

Cabe destacar que debido a la naturaleza de los procedimientos, debe utilizarse la forma 4-dimensional completa del Biespectro. En consecuencia, los tiempos de procesamiento se multiplican conforme M y N crecen. Los métodos de implementación para las ecua-ciones (4.16) y (4.17) son muy similares puesto que se tienen la misma estructura. Es posible implementar ambas en el mismo procedimiento introduciendo la magnitud y fase del Biespectro por separado de la siguiente forma.

función MPerdem(Bmag, Bphi) ; Reconstrucción de magnitud y fase [M N]:= longitut(Bmag,1,2) ; Bmag := ln(Bmag) ; Se calcula el logaritmo usando log a1 := 2/(3*(M*N)^2) ; bm := suma(Bmag[:])*a1 ; Suma todos los elementos del arre- bp := suma(Bphi[:])*a1 ; glo usando sum for u:=0,u=M-1,u++ ; for v:=0,vN-1,v++ ; auxm := Bmag[u+1,v+1,:,:] ; auxp := Bphi[u+1,v+1,:,:] ; Xmag[u+1,v+1]:= suma(auxm[:])/(M*N)-bm ; Xphi[u+1,v+1]:= suma(auxp[:])/(M*N)-bp ; end ; end ; Xmag := exp(Xmag) ; Se revierte la operación de log regresar(Xmag,Xphi) ; Magnitud y fase por separado

4.6 Resumen 71

Para este último algoritmo es de gran utilidad la función sum de Matlab ya que permite realizar una operación de sumatoria sobre todos los elementos de un arreglo sin tener que implementarla con un ciclo for, operación que demandaría más tiempo de ejecución. Por esta razón, este procedimiento resulta más eficiente en tiempo que el anterior aunque prevalece la condición del uso del Biespectro completo.

4.6 Resumen

Se han presentado en este capítulo, el desarrollo de diversos algoritmos en forma de pseudo-código así como la descripción de su programación en Matlab. Estos algoritmos están relacionados con la implementación de algunas técnicas descritas en el capítulo 2 como son la manipulación básica de imágenes, el filtrado lineal y no lineal, la corrección de gamma entre otras; estimación de funciones poli espectrales para señales de una y dos dimensiones; obtención de regiones reducidas del Biespectro bidimensional para la opti-mización de los procedimientos computacionales de estimación; solución al problema del envolvimiento de fase asociado con los métodos de reconstrucción y finalmente, algorit-mos para la reconstrucción de señales bidimensionales a partir de su Biespectro.

El desarrollo de algoritmos tanto de estimación de Poliespectros como de reconstrucción para señales bidimensionales presentan, por si solos, gran potencialidad de aplicación en el procesamiento de imágenes. Además, el uso de éstos junto con algoritmos convencio-nales para el procesamiento de imágenes representa el preámbulo para el desarrollo de aplicaciones específicas del procesamiento digital de imágenes utilizando el Biespectro. En el siguiente capítulo se presenta el desarrollo de algunas de ellas.

73

5. Aplicaciones

La mayoría de las actividades de investigación que se desarrollaron arrojaron como resultado funciones de implementación en Matlab. Tanto la información como el desarrollo de algoritmos obtenidos en capítulos anteriores son considera-dos como un primer resultado de investigación útil para la obtención de resultados experimentales posteriores. En este capítulo, se aborda el desarrollo de aplicacio-nes específicas basadas en el uso de los procedimientos computacionales desarro-llados en el capítulo anterior. Tales aplicaciones comprenden el uso indirecto del Biespectro, el cálculo de estimados biespectrales a partir de regiones no-redun-dantes, la reconstrucción de imágenes usando la fase desenvuelta del Biespectro y la comparación de los resultados contra datos obtenidos mediante técnicas con-vencionales de efectos similares.

5.1 Funciones en Matlab®

Como se vio en el capítulo anterior, el desarrollo de algoritmos produjo funciones de im-plementación en Matlab. Además de las mencionadas en ese capítulo, se desarrollaron funciones auxiliares y funciones secundarias para efectuar la adecuación de los datos en algunas aplicaciones. A continuación se presenta una lista de las funciones principales relacionadas con el desarrollo de aplicaciones del presente capítulo. En ésta no se inclu-yen las funciones secundarias ni las funciones de procesamiento de imágenes convencio-nales, a estas últimas se hará referencia por el nombre de la técnica asumiendo que se cuenta con los métodos computacionales necesarios.

• BISd2D. Biespectro 2D completo por método directo

• BISd2DMP. BIS 2D completo, magnitud y fase por separado

• BISM2D, BISM2DMP. Biespectro modificado 2D

• BIC2DMP. Bicoherencia 2D

• BISr, BISrMP. Biespectro 2D no redundante y su versión con fase desenvuelta

• UNWRphi. Desenvolvimiento de fase, se usa con las funciones que calculan la magnitud y fase por separado para calcular estimados de fase desenvuelta

• MPerdem Reconstrucción a partir del BIS 2D completo

• RECMP. BIS completo a partir del BIS no redundante

74 Capítulo 5. Aplicaciones

La mención, en esta sección, de estas funciones se hace con fines de referencia para las aplicaciones específicas. En el apéndice B se muestran descripciones sobre la operación y cuestiones de sintaxis de éstas y las restantes funciones desarrolladas.

Otras implementaciones como la bicoherencia y el biperiodograma (BIP2D, BIP2DMP, BIC2D) basan su operación en los algoritmos presentados en el capítulo anterior y hacen uso de las funciones generales presentadas en la lista anterior. Dado que éstas dependen de los resultados arrojados por otras funciones y varían en estructura de acuerdo al nú-mero de iteraciones y traslapes que se requieran, no se mencionan aquí como funciones generales pero se toman sus algoritmos como referencia para el desarrollo de las aplica-ciones.

5.2 Reconstrucción usando fase desenvuelta

En la sección 3.7.1 se habla de los problemas en la reconstrucción al tener una fase en-vuelta, la Figura 3.5 muestra las consecuencias de esto. Ahora, para mostrar los resulta-dos de la solución propuesta al desenvolvimiento de fase expuesto en la sección 4.4, se presenta la reconstrucción de la misma imagen usando el procedimiento de reconstruc-ción ilustrado en la Figura 3.4 añadiendo un bloque para desenvolver la fase antes de calcular el Biespectro.

Como se indica en la figura, primero se obtiene la transformada de Fourier de la imagen. Adicionalmente, se desenvuelve su fase usando la función UNWRphi. Posteriormente se prosigue como en la figura, calculando la magnitud y la fase del Biespectro por separado mediante BISd2DMP. Después se reconstruye la transformada de Fourier de la imagen usando MPerdem para su magnitud y fase por separado, finalmente se transforma de vuelta al dominio espacial mediante la función ifft2. El resultado obtenido de este procedi-miento se muestra en la Figura 5.1

a) Original b) Reconstruida

Figura 5.1 Reconstrucción con desenvolvimiento de fase

Como puede observarse, el resultado obtenido es totalmente diferente al mostrado en la Figura 3.5. En esta ocasión no se aprecia ninguna diferencia visual entre la imagen origi-nal y la reconstruida.

5.3 Reconstrucción a partir de observaciones ruidosas 75

5.3 Reconstrucción a partir de observaciones ruidosas

Una de las principales motivaciones para el uso de la reconstrucción es aprovechar las características de reducción de ruido gaussiano aditivo. En [4], además de proponer un método de reconstrucción, se propone una aplicación relacionada con el movimiento de la señal (imagen) dentro de un campo de ruido gaussiano. Se pretende que, teniendo ob-servaciones ruidosas de la imagen, se reconstruya una nueva imagen a través de la esti-mación de su Biespectro y la reconstrucción a partir de éste con el objeto de reducir los efectos del ruido. Aquí se presenta una reproducción de dicha aplicación, los resultados se comparan contra el uso de una técnica convencional para la reducción de ruido que consiste en el simple promediado de las observaciones ruidosas.

El primer experimento se realizó añadiendo al Biespectro de la imagen, el Biespectro es-timado de un campo de ruido gaussiano usando 100 realizaciones de éste. La Figura 5.2a muestra la imagen de 48x48 píxeles a procesar así como una de sus observaciones ruido-sas (Figura 5.2b) con ruido gaussiano aditivo de varianza 0.05. El ruido fue añadido utili-zando la función imnoise de Matlab, para más información sobre esta función ver el apéndice A. El BIS de la imagen se obtuvo usando la función BISd2DMP. En la Figura 5.2c se muestra la imagen resultante de reconstruir el Biespectro (usando MPerdem) de las ob-servaciones ruidosas debidas a las 100 realizaciones del campo de ruido.

Se realizó un segundo experimento añadiendo el ruido de cada una de las 100 realizacio-nes de ruido para tener las 100 imágenes ruidosas, posteriormente se promediaron todas éstas obteniendo la imagen mostrada en la Figura 5.2d (técnica convencional).

a) Original b) Observación

Ruidosa c) Reconstruida usando BIS

d) Procesada usando promediado

Figura 5.2 Reconstrucción a partir de observaciones ruidosas

Se puede apreciar el efecto de reducción de ruido en la Figura 5.2c, sin embargo, la ima-gen procesada mediante el promediado de las imágenes ruidosas resulta en un mejor re-sultado apreciable en la Figura 5.2d. Evidentemente, los resultados obtenidos por la téc-nica convencional son mejores además de que los tiempos de procesamiento son mucho menores a los requeridos para la reconstrucción.

Esto no quiere decir que el método deba descartarse dadas sus desventajas contra la téc-nica convencional, se pueden destacar algunas conclusiones útiles de este experimento.

El hecho de que el Biespectro de la imagen sea calculado a partir de (4.3) indica que esta estimación del BIS no es estadísticamente aceptable. El uso de ésa ecuación solo arrojaría

76 Capítulo 5. Aplicaciones

estimados confiables para señales determinísticas. La definición del Biespectro para se-ñales aleatorias involucra la estimación de promediados estadísticos como el uso del Bi-periodograma o ventanas suavizantes.

Por otra parte, la solución al problema del envolvimiento de fase implica el cálculo de la fase desenvuelta por separado, por lo que, las operaciones de promediado del Biespectro también deben realizarse por separado para evitar el envolvimiento de fase en 4 dimen-siones, entonces la aplicación de este método presenta un inconveniente en relación con la teoría. Esto puede verse más fácilmente con la siguiente desigualdad:

1 2 1 2( , ) [ ( , )]1 2 1 2[ ( ) ] [ ( ) ]j jEE B e E B eφ φ≠k k k kk ,k k ,k (5.1)

En la ecuación (5.1) puede observarse que la desigualdad se cumple dado que el número de estimaciones biespectrales es finito. Aún teniendo esta desventaja, se puede llegar a obtener un estimado confiable del Biespectro si el número de observaciones tiende a ser muy grande. Otra posibilidad, es hacer uso de ventanas que solo modifiquen la magnitud del Biespectro dejando intacta la fase.

Se debe destacar que la aplicación desarrollada en este apartado fue tomada de [4], en ese trabajo no se establece la comparación que se hace aquí contra el simple promediado de las imágenes ni se toman conclusiones con respecto a otras posibles aplicaciones. Adi-cionalmente, el hecho de contar con 100 o más observaciones de la imagen a través de un campo de ruido resulta una condición poco probable de encontrar en aplicaciones reales.

En la sección siguiente, se propone una aplicación diferente que explota las ventajas de la reconstrucción y que además plantea condiciones más apegadas a la realidad. También se hacen ajustes con respecto a la estimación del Biespectro para contar con estimados con-fiables y análogamente, se compara contra el uso de técnicas convencionales para la su-presión de ruido.

5.4 Reconstrucción por bloques

Se ha establecido empíricamente que debe mejorarse la confiabilidad de los estimados del Biespectro con el fin de obtener mayor provecho en el uso de la reconstrucción. Tam-bién se dijo que el método de reconstrucción utilizado está definido solo para el Biespec-tro completo por lo que las implicaciones computacionales imponen una limitante para su aplicación, es decir, solo se puede aplicar para imágenes relativamente pequeñas (48x48 para el ejemplo anterior).

Aquí se presenta una aplicación que, en cierta forma, compensa la limitación que se ha mencionado y aprovecha el uso del Biespectro reducido para calcular estimados estadísti-camente confiables de baja resolución para imágenes de mayor tamaño.

5.4 Reconstrucción por bloques 77

El objetivo de procesamiento es el mismo: reducir los efectos de ruido en una imagen utilizando la reconstrucción de la imagen a partir de su Biespectro. En esta ocasión solo se contará con una imagen afectada por ruido gaussiano aditivo y no con múltiples obser-vaciones ruidosas.

La idea es dividir la imagen ruidosa de la Figura 5.3 en pequeños bloques traslapantes. La Figura 5.4 muestra un ejemplo de dicha división utilizando bloques de 32x32 píxeles con un traslape de 8 píxeles.

Los bloques resultantes se usarán como segmentos para la obtención del Biperiodograma. Para conseguir esto con condiciones de tiempo y memoria óptimas, se utiliza el Biespec-tro reducido en el cálculo del biperiodograma y finalmente se recreará el Biespectro completo de cada segmento (con RECMP) con el objeto de reconstruir, usando MPerdem, cada bloque de la señal a partir de su Biespectro.

Figura 5.3 Imagen con ruido gaussiano Figura 5.4 División de imagen en bloques

Para la reconstrucción, se utiliza el Biespectro reducido (BISrMP) de cada bloque usando una máscara o ventana, generada por la información del Biespectro reducido de la ima-gen completa. Se genera el estimado del Biespectro completo del bloque utilizando RECMP y a partir de éste se reconstruye con MPerdem. Finalmente, se ensamblan los bloques to-mando solo las regiones no-traslapantes de cada uno de ellos para ensamblar la imagen procesada completa.

La Figura 5.5 muestra los resultados de la implementación. Se puede distinguir la reduc-ción de los efectos del ruido así como un efecto de difuminado sobre toda la imagen, además aparecen líneas formando una cuadrícula producto del ensamble de los bloques procesados. Dichas líneas se deben a que la media del ruido en cada bloque no es cero, esto hace que el rango de los valores de intensidad del bloque reconstruido varíe ligera-mente de un bloque a otro y se presente el efecto de cuadriculado. Este problema puede disminuirse si antes del ensamble se compensa a cada bloque añadiéndole una constante que modifique el rango de los valores de intensidad (modificación de brillo).

Los valores de compensación pueden obtenerse en base a la media de cada bloque y hacer un ajuste fino variando ligeramente al sumar o restar valores pequeños al valor de compensación. Otra forma de compensar tal efecto es procesar la imagen obtenida apli-

78 Capítulo 5. Aplicaciones

cando filtros de suavizado o de media y mediana alrededor de los píxeles afectados. La Figura 5.6 muestra la imagen después de dicha compensación.

Figura 5.5 Imagen reconstruida por bloques Figura 5.6 Compensación de los rangos de

intensidad para la imagen reconstruida

5.4.1 Enmascarado usando la Bicoherencia

Se pueden obtener variaciones de este método utilizando diferentes procedimientos en la generación de la máscara para suavizar el Biespectro estimado de los bloques. Por ejem-plo, se puede utilizar la Bicoherencia, que es la magnitud de un estimado normalizado del Biespectro. Como se ha dicho, la Bicoherencia es un estimado cuya varianza es indepen-diente de la potencia asociada con las frecuencias del Biespectro y se define por la ecua-ción (3.39).

La Bicoherencia de la imagen completa se obtiene de forma análoga al Biperiodograma, calculando el estimado para cada bloque y después promediando los estimados, se usa para esto la función BIC2DMP. Este procedimiento arroja una máscara diferente que se aplica para suavizar el Biespectro de cada bloque y posteriormente reconstruirlo. La Figura 5.7 muestra los resultados de la implementación.

Figura 5.7 Reconstrucción de imagen usando la Bicoherencia como máscara

En la Figura 5.7 se puede apreciar que el ruido no ha sido reducido significativamente pero, a diferencia del primer experimento, no se presenta un efecto tan acentuado de di-fuminado. Estas características dan la pauta para implementar un procedimiento iterativo usando la Bicoherencia como máscara que busque reducir cada vez más los efectos del ruido y evitar el difuminado. Antes de aplicar nuevamente el procesado usando la Bico-herencia como máscara, es preferible compensar la diferencia de intensidades entre blo-

5.4 Reconstrucción por bloques 79

ques de forma que este problema no se magnifique con cada iteración. En la Figura 5.8 se muestra el procesamiento iterativo usando la Bicoherencia.

a) 6 Iteraciones b) 12 Iteraciones Figura 5.8 Imagen procesada iterativamente, usando la Bicoherencia como máscara

5.4.2 Enmascarado usando Biespectro modificado

Como se mencionó en la sección 3.3.2, se puede usar el Biespectro modificado (BISM) para resaltar ciertas características de interés, el cual resulta del enmascaramiento de la magnitud del Biespectro a través de su fase. El objetivo es resaltar las magnitudes debi-das a acoplamientos de fase y atenuar aquellas que no tengan relación con tales acopla-mientos. Así, se puede generar una máscara para el Biespectro basada en el BISM y re-construir bloques de imágenes de la forma que se mencionó antes. La función utilizada para dicho propósito es BISM2DMP. La Figura 5.9 Muestra la implementación de esta va-riante.

Figura 5.9 Reconstrucción de imagen usando BISM como máscara

En suma, se ha presentado un método de reconstrucción usando el Biespectro en el que se aprovecha tanto el uso de la región no redundante como el desenvolvimiento de fase. Las máscaras aquí presentadas se basan directamente en los estimados biespectrales de la imagen buscando aprovechar sus características en cuanto a reducción de ruido gaus-siano. Una variante para este método podría implementarse creando máscaras que usen, no solo los estimados del Biespectro, sino además ventanas o filtros 4-dimensionales para atenuar bi-frecuencias que estén relacionadas con acoplamientos armónicos o para mejo-rar la reducción del ruido.

80 Capítulo 5. Aplicaciones

5.4.3 Comparación contra técnicas convencionales

Por último, se presenta la comparación de los resultados obtenidos mediante la recons-trucción usando diferentes máscaras biespectrales y el procesamiento mediante técnicas convencionales. En la Figura 5.10 se presenta la imagen ruidosa procesada mediante el uso de dos técnicas convencionales que son el filtro por media y el filtro por mediana respectivamente, se seleccionó un tamaño del filtro (9x9 píxeles para mediana y 15x15 para media) tal que se produjera un efecto óptimo de reducción de ruido.

La razón para elegir estas técnicas está ligada con los conceptos presentados en el capí-tulo 2 en donde se establece el uso de éstas para la reducción de ruido.

a) Filtrado por mediana 9x9 b) Filtro de promediado 15x15

Figura 5.10 Imagen procesada mediante técnicas convencionales

De las máscaras presentadas en el apartado anterior, el BIS y el BISM arrojaron resulta-dos muy similares, con ambos se obtienen imágenes con una reducción considerable del ruido aunque con un difuminado que puede resultar “no deseable” para algunas aplica-ciones. El difuminado es más intenso con BIS que con BISM la diferencia se observa en los bordes de la imagen que representan regiones de alto contraste.

En la Figura 5.11 se presentan ejemplos adicionales usando el BIS y el BISM así como técnicas convencionales.

Por otra parte, el uso de la Bicoherencia reduce el efecto de difuminado aunque no se ob-tienen efectos muy buenos de reducción de ruido por lo que es necesario volver a proce-sar la imagen. Después de varias iteraciones, los resultados obtenidos son más aceptables en cuanto a reducción de ruido y a diferencia de BIS o BISM el difuminado de la imagen no es tan severo. Sin embargo, el procesamiento iterativo introduce serias desventajas en cuanto a la complejidad en la adecuación de las imágenes y en cuanto al tiempo de proce-samiento, por ejemplo, para la reconstrucción de la imagen de la Figura 5.8b se requirie-ron aproximadamente 115 minutos.

Finalmente, los resultados obtenidos por el uso de las dos técnicas convencionales para la reducción de ruido muestran que no son de gran utilidad cuando se tienen imágenes afectadas por condiciones severas de ruido gaussiano. En este sentido, puede considerarse como superior a la reconstrucción por bloques a partir del Biespectro. Si la aplicación en

5.4 Reconstrucción por bloques 81

la que se requiere el procesamiento requiere además, que los efectos de difuminado no sean tan severos, es recomendable usar la Bicoherencia como máscara y establecer el número de iteraciones necesarias para lograr resultados aceptables.

a) Imágenes afectadas por

ruido Gaussiano (media cero,

varianza 0.03)

b) Imágenes pro-cesadas usando

BIS como máscara

c) Imágenes pro-cesadas usando

BISM como más-cara

d) Imágenes pro-cesadas por filtro de promediado

(izq 7x7, der 5x5)

e) Imágenes pro-cesadas por filtro de mediana 7x7

Figura 5.11 Ejemplos de procesamiento por bloques

82 Capítulo 5. Aplicaciones

5.5 Uso indirecto del Biespectro en una aplicación

Como se mencionó en la sección 3.6, algunas aplicaciones del Biespectro se realizan haciendo uso indirecto de la información que éste proporciona para encontrar parámetros o puntos de operación útiles en la aplicación de otras técnicas.

Se presenta una aplicación de este tipo proponiendo un procedimiento para la corrección inversa de gamma (CIG). Esta aplicación se expone en [23] tratando a la imagen como una secuencia unidimensional y empleando técnicas poliespectrales para señales unidi-mensionales en el dominio del tiempo. Aquí se propone extender la aplicación al uso de técnicas poliespectrales para señales bidimensionales.

5.5.1 Corrección inversa de gamma

Cierta no-linealidad en la luminancia introducida generalmente por los dispositivos de adquisición de imágenes puede describirse por la operación punto a punto de corrección de gamma. En la sección 2.4.2 se presenta información respecto a esta función y se de-fine mediante la ecuación (2.3). Si se conoce el valor de γ en dicha ecuación, entonces la inversión del proceso es trivial usando:

1 1/( )g u u γ− = (5.2)

El valor de γ se determina típicamente pasando un patrón de calibración conteniendo el rango completo de los valores de luminancia a través del dispositivo. Sin embargo no siempre se puede realizar ese tipo de calibración ya que pudiera no tenerse acceso al dis-positivo de adquisición. Además, la mayoría de las cámaras digitales comerciales varían dinámicamente la cantidad de gamma.

Resulta ventajoso para algunas aplicaciones remover dicha no-linealidad previo a etapas subsecuentes de procesamiento [23]. La aplicación que se propone pretende la corrección de gamma en ausencia de parámetros de calibración o conocimiento de las características del dispositivo.

El enfoque del problema se basa en el hecho de que la corrección de gamma introduce correlaciones específicas en el dominio de la frecuencia, éstas pueden detectarse usando las herramientas del análisis poliespectral y determinar el factor de gamma minimizando tales correlaciones. Para explicar el efecto de las correlaciones se considerará una señal compuesta por dos ondas senoidales de fase nula:

1 1 2 2( ) ( ) ( )y n a sen n a sen nω ω= + (5.3)

Cuando se somete a una señal de este tipo a la función en (2.3) se introducen nuevos armónicos con amplitudes y fases que están correlacionadas con los armónicos origina-les. Esto se puede ver más explícitamente escribiendo los primeros tres términos de la expansión en series de Taylor de (2.3):

5.5 Uso indirecto del Biespectro en una aplicación 83

210 0 0 0 02( ) ( ) '( )( ) ''( )( )g u g u g u u u g u u u= + − + − (5.4)

Omitiendo los términos escalares y sustituyendo y(n) [23]:

2

2 21 1 2 2 1 1

2 21 2 1 2 2 2

( ( )) ( ) ( )

( ) ( ) ( )

2 ( ) ( ) ( )

g y n y n y n

a sen n a sen n a sen n

a a sen n sen n a sen n

ω ω ωω ω ω

≈ +

= + +

+ +

(5.5)

Desarrollando con el uso de identidades trigonométricas [23]:

1 1 2 2

2 21 11 1 2 22 2

1 2 1 2 1 2 1 2

( ( )) ( ) ( )

(1 (2 )) (1 (2 ))2 (( ) ) 2 (( ) )

g y n a sen n a sen n

a sen n a sen na a sen n a a sen n

ω ωω ω

ω ω ω ω

≈ +

+ + + ++ + + −

(5.6)

En (5.6) se destaca la presencia de varios armónicos adicionales 2ω1, 2ω2, ω1+ω2 y ω1-ω2. Además, puede verse que las amplitudes de los nuevos armónicos están correlaciona-das a las amplitudes de los armónicos originales. Esto se puede generalizar para señales y no-linealidades arbitrarias [23].

Comparando la ecuación de estimación del Biespectro (3.27) con (5.6), se puede deducir que el Biespectro revela las correlaciones armónicas introducidas por una no-linealidad como la corrección de gamma. Sin embargo, como se ha dicho, el estimado del Biespec-tro generado por (3.27) tiene la propiedad de que la varianza para cada par de frecuencias depende de la potencia de dichas frecuencias. Por tal razón, es preferible usar la Bicohe-rencia ya que es un estimado real, normalizado que, para esta aplicación, refleja de ma-nera más acentuada las correlaciones que se buscan. El método propuesto se resume en los siguientes pasos:

• Definir un rango de valores posibles de gamma.

• Para cada valor de gamma aplicar CIG (5.2).

• Calcular la Bicoherencia usando BIC2D para cada imagen corregida en el rango de valores de gamma.

• Promediar todas las muestras de la Bicoherencia obteniendo un escalar para cada imagen.

• Seleccionar el valor de gamma que produzca el escalar mínimo.

• La corrección se obtiene al aplicar inversamente el valor de gamma escogido.

Primero se presentará la corrección inversa de gamma utilizando una imagen artificial creada con una gamma lineal. La imagen se muestra en la Figura 5.12 así como su corres-pondiente gráfica de valores de intensidad normalizados (LUT).

84 Capítulo 5. Aplicaciones

a) Imagen b) LUT

Figura 5.12 Imagen artificial con gamma lineal

Se le aplica una corrección de gamma a la imagen y se realiza el procedimiento mencio-nado para encontrar el valor de gamma. La imagen modificada así como su curva se muestra en la Figura 5.13. Se procesa primero tomando a la imagen como una secuencia unidimensional como se establece en [23] y posteriormente utilizando el estimado de la Bicoherencia para señales bidimensionales.

a) Imagen b) LUT

Figura 5.13 Imagen con corrección de gamma usando γ=1.75

En la Figura 5.14 se observa la gráfica de los valores de γ probados, contra el conjunto de promedios para las Bicoherencias de las imágenes usando el enfoque unidimensional. La Figura 5.15 muestra lo equivalente para el enfoque bidimensional.

Comparando las curvas de gamma contra promedio de la Bicoherencia de la Figura 5.14 y la Figura 5.15, se observa que ambas muestran un mínimo para el valor de gamma apli-cado a la imagen lineal. El enfoque unidimensional presenta un error de 0.25 en el valor de gama, mientras que por el enfoque bidimensional se puede distinguir un resultado en el que es más fácil identificar el mínimo de la función, el cual es exactamente el valor de γ aplicado.

Se realizó el mismo experimento para diferentes valores de gamma obteniendo resultados similares. Los resultados no se muestran aquí por las limitaciones de espacio.

5.5 Uso indirecto del Biespectro en una aplicación 85

Figura 5.14 Corrección inversa de gamma por el

enfoque unidimensional Figura 5.15 Corrección inversa de gamma por

enfoque bidimensional

Se ha probado el éxito de la técnica usando la imagen generada artificialmente con un rango de valores de intensidad lineal. Ahora se desarrollarán experimentos de forma análoga para imágenes reales (fotografía). A manera de comprobación, primero se realiza la corrección inversa de gamma. Después se aplica nuevamente el procedimiento a la imagen corregida. Para este paso, se espera que el mínimo en el promediado de la Bico-herencia se produzca con γ =1 o para valores muy cercanos, lo cual indica que la imagen fue restaurada apropiadamente.

Figura 5.16 Imagen real para la corrección inversa de gamma

Los resultados de la búsqueda de gamma para la Figura 5.16 usando ambos enfoques se muestran en la Figura 5.17 y la Figura 5.18 respectivamente.

a) Valor estimado de γ b) Imagen corregida c) Prueba de linealidad

Figura 5.17 Resultado de la CIG unidimensional

86 Capítulo 5. Aplicaciones

a) Valor estimado de γ b) Imagen corregida c) Prueba de linealidad

Figura 5.18 Resultado de la CIG bidimensional

El método unidimensional arrojó un valor de γ =1.385, mientras que el método bidimen-sional encontró una γ=1.5. Las comprobaciones realizadas a la imagen corregida se muestran en la Figura 5.17c y la Figura 5.18c. En esas gráficas se puede observar la efectividad de la técnica dependiendo si el valor de γ de la imagen corregida es igual o muy cercano a uno. Para el caso unidimensional se observa una pequeña desviación de 0.0625.

De lo anterior pueden hacerse dos observaciones:

• Es más fácil distinguir el mínimo de la función del promediado de las Bicoheren-cias usando el enfoque bidimensional.

• Los resultados obtenidos tratando a la imagen como una matriz presentan menos error en la búsqueda del valor de gamma por lo que pueden resultar más confiables que los obtenidos por el enfoque unidimensional (tratando a la imagen como un vector).

La forma de procesamiento usando el BIS que se ha presentado aquí puede extenderse a otros fenómenos que causen no-linealidades que introduzcan acoplamientos armónicos detectables con correlaciones de alto orden. Se pueden desarrollar aplicaciones similares si se cuanta con los procedimientos de corrección de dichos efectos y se usa al BIS o a la Bicoherencia para optimizar la selección del o los parámetros de corrección.

Una desventaja de esta técnica es que si se procesan imágenes que presentan una serie de no-linealidades que introduzcan acoplamientos armónicos además de los introducidos por la corrección de gamma, resulta difícil encontrar el mínimo de la función de optimización ya que ésta se vuelve abrupta y puede contener más de un mínimo local.

5.6 Resumen 87

5.6 Resumen

En este capítulo se ha presentado el uso de los algoritmos, desarrollados en el capítulo anterior, en aplicaciones específicas que buscan tomar ventaja de las características de reducción de ruido gaussiano y detección de no-linealidades asociadas al Biespectro.

Como se ha mencionado, el último juicio en cuanto a la calidad de una imagen está a cargo del sistema visual humano por lo que una comparación entre técnicas puede resul-tar subjetiva. Con este capítulo se concluye la aplicación de algoritmos de procesamiento digital de imágenes usando Biespectro así como la obtención de resultados experimenta-les derivados de dicha aplicación. En el capítulo siguiente se presentan conclusiones fi-nales al trabajo de investigación y se hace un sumario de las conclusiones obtenidas a lo largo de los capítulos que lo componen.

89

6. Conclusiones Este trabajo ha presentado progresivamente el desarrollo de algoritmos de procesamiento digital de imágenes usando Biespectro para su aplicación en imágenes reales y su compa-ración con técnicas convencionales. El enfoque que se ha dado para los métodos de esti-mación biespectrales es el no-paramétrico.

La aplicación que se planteó para el uso del Biespectro en el procesamiento de imágenes resulta ser muy diferente a las aplicaciones planteadas con anterioridad en trabajos pre-vios desarrollados en CENIDET. Tales diferencias hicieron resaltar la importancia de los métodos de reconstrucción a partir del Biespectro, mismos que no habían sido considera-dos tan seriamente al inicio del trabajo de tesis. Una gran diferencia es que los trabajos desarrollados previamente hacen uso de las técnicas poliespectrales disponibles para se-ñales unidimensionales. El dominio bidimensional trae consigo nuevas implicaciones ta-les como: dificultad de representación para señales multidimensionales, limitaciones in-troducidas en relación a recursos computacionales, dificultades en la reconstrucción de señales, entre otras. Se identificaron problemas específicos, los cuales fueron analizados y se generaron varias alternativas de solución para resolverlos.

El uso de los programas proporcionados por otros trabajos sirvió como antecedente en la adecuación y comprensión de los métodos que emplean en la estimación de funciones poliespectrales. Previamente tuvo que realizarse una familiarización con el software de desarrollo Matlab utilizado para los aspectos prácticos de este trabajo. Se identificaron también algunas otras herramientas de software útiles para fines prácticos.

La elaboración de ejercicios relacionados con casi todos los temas que se revisaron per-mitió construir un amplio panorama acerca de los efectos que tienen diversas técnicas sobre las características de las imágenes. Se lograron identificar paquetes de software comerciales que incluyen la mayoría de las técnicas de procesamiento convencionales aquí descritas. Algunos de dichos paquetes son: Adobe Photoshop, Jasc Paint Shop Pro, Astra Image y Corel Photopaint. Éstos fueron estudiados y utilizados en diversos experi-mentos que se realizaron paralelamente en varios paquetes. En suma, se adquirieron los conocimientos suficientes, tanto teóricos como prácticos, para establecer parámetros de comparación de las técnicas convencionales contra los resultados potenciales del proce-samiento mediante funciones poliespectrales.

Finalmente, las aportaciones de este trabajo están ligadas directamente con la consecu-ción de los objetivos planteados, más adelante se enlista cada una de ellas. En la siguiente sección se exponen conclusiones finales referentes a la aplicación del procesamiento de imágenes usando Biespectro.

90 Capítulo 6. Conclusiones

6.1 Conclusiones de aplicación

La extensión del uso de las técnicas del análisis poliespectral de señales unidimensionales a señales bidimensionales resulta ser poco trivial. Una las mayores complicaciones que se presentan cuando se abordan posibles aplicaciones para las técnicas poliespectrales para imágenes se debe a la implicaciones computacionales detalladas en la sección 3.5 de este documento.

Aun contando con métodos para reducir los requerimientos de cómputo, las aplicaciones desarrolladas siguen demandando recursos superiores a los necesarios para el procesa-miento con técnicas convencionales. Tomando como ejemplo la reconstrucción de una imagen (42x42 píxeles) como se muestra en la sección 5.3. Se requieren 1.98 Mb para almacenar el Biespectro reducido y dado que la reconstrucción se efectúa usando la tota-lidad de los elementos del BIS, se requieren 23.7 Mb adicionales para este fin. Por otra parte, el tiempo de necesario para procesar las 100 observaciones ruidosas y reconstruir la imagen a partir del BIS es de aproximadamente 3 minutos. En contraste, la técnica del promediado de las imágenes solo requiere de los datos de las imágenes lo cual exigiría tan solo 1.34 Mb y aproximadamente 15 segundos para el procesamiento.

Tales limitaciones hacen que el desarrollo de este tipo de aplicaciones no se aborde tan frecuentemente desde el enfoque no-paramétrico, dando preferencia a métodos de esti-mación paramétricos así como enfoques unidimensionales. La ventaja de usar métodos no-paramétricos radica en que no tienen que definirse modelos para las señales ni para los estimados, además de que no es necesario contar con información a priori del proceso de adquisición de los datos. Esto hace que las herramientas desarrolladas bajo métodos no-paramétricos sean más generales y se puedan usar, en teoría, para una amplia gama de aplicaciones.

La introducción de técnicas basadas en la reconstrucción traen consigo problemas adicio-nales a los ya mencionados como son el desenvolvimiento de fase y el desarrollo de ven-tanas para el enmascaramiento del Biespectro 4-dimensional.

Sin embargo, se ha mostrado en el capítulo 5 el comportamiento del BIS en imágenes con ruido gaussiano aditivo. Se muestran resultados diversos de distintas técnicas de enmas-caramiento para la reconstrucción por bloques y se establecen algunas ventajas y des-ventajas de la aplicación de éstas. Además, se comparan los resultados obtenidos con téc-nicas convencionales resaltando las ventajas de la técnica propuesta sobre dos técnicas convencionales. La elección de una u otra técnica dependerá de la aplicación en la que se usen identificando las necesidades de procesamiento y la naturaleza de los resultados es-perados. Dado que el mayor juez en cuanto a la calidad de una imagen es el sistema vi-sual humano, las comparaciones entre los resultados de una técnica u otra pueden llegar a ser muy subjetivos y depender en gran medida de la aplicación en que se requieran. Sin

6.2 Aportaciones 91

embargo, se han destacado características bien definidas que presentan el uso de técnicas biespectrales como una alternativa al procesamiento convencional.

Por otra parte, el uso indirecto del Biespectro 4-dimensional en aplicaciones de procesa-miento de imágenes ha demostrado ser superior al uso del BIS bidimensional para imá-genes en las que se conocen la naturaleza de los acoplamientos armónicos (imágenes sintéticas) y ha mostrado ser de utilidad para el procesamiento de imágenes reales con condiciones similares. A pesar de ello, el enfoque unidimensional presenta ventajas en cuanto a los requerimientos computacionales, por lo que, si estos requerimientos son crí-ticos para cierta aplicación es recomendable decidir el uso de este enfoque sobre el enfo-que bidimensional. Existen trabajos en los que se han propuesto aplicaciones similares a la corrección inversa de gamma [31], por lo que sería interesante desarrollar aplicaciones como las planteadas aquí para la comprobación de los experimentos de dichos trabajos y su comparación con el uso de las técnicas aquí expuestas.

6.2 Aportaciones

• Se extendió el uso de técnicas poliespectrales para el procesamiento de señales bidimensionales (ver sección 3.3).

• Se introdujo un método de procesamiento que no había sido utilizado antes en el CENIDET y que normalmente representa la resolución de problemas no triviales (ver secciones 3.7 y 4.5).

• Se desarrollaron herramientas de software útiles para la estimación y uso del Bies-pectro 4-dimensional.

• Se hizo una extensión de aplicaciones planteadas por otros autores, se establecieron comparaciones con técnicas convencionales y se expusieron comentarios adicio-nales que no mencionan otros autores (ver secciones 5.3, 5.4 y 5.5).

• Se desarrolló una aplicación propia en la que se utilizaron la mayoría de las herra-mientas desarrolladas estableciendo comparaciones con el uso de técnicas conven-cionales (reconstrucción por bloques sección 5.4).

• Se obtuvieron dos procedimientos novedosos para la obtención de regiones reduci-das no-redundantes del Biespectro 4-dimensional (ver sección 4.3).

• Se generó una solución original al problema de desenvolvimiento de fase la cual se utilizó en las aplicaciones mencionadas (ver sección 4.4).

• Se sentaron las bases para el desarrollo de aplicaciones de procesamiento digital de imágenes usando el Biespectro, mediante un enfoque no-paramétrico.

92 Capítulo 6. Conclusiones

6.3 Recomendación de trabajos futuros

A continuación se muestran algunas recomendaciones para la investigación e implemen-tación de trabajos posibles trabajos futuros:

6.3.1 En cuanto a la reconstrucción

• Adaptar los métodos de reconstrucción para que trabajen con la región no redun-dante del Biespectro en lugar del Biespectro completo.

• Diseñar un procedimiento de desenvolvimiento de fase de cuatro dimensiones con el objeto de desenvolver la fase biespectral directamente. Una pista para ello sería implementar una función de transformada discreta coseno 4-dimensional y exten-der el método utilizado en este trabajo para dos dimensiones.

• Implementar procedimientos de reconstrucción alternativos que se basen en técni-cas de deconvolución.

• Crear una base de datos que contenga múltiples conjuntos reducidos para diferentes valores de M y N. De ser posible, optimizar los procedimientos para la obtención de regiones reducidas.

6.3.2 En cuanto a la aplicación

• Probar la aplicación de reducción de ruido a partir de imágenes ruidosas utilizando métodos de desenvolvimiento de fase 4-dimensionales.

• Probar la aplicación de procesamiento por bloques utilizando diferentes máscaras para el Biespectro. Una posible alternativa para esto sería diseñar filtros 4-dimen-sionales de fase lineal para el Biespectro.

• Probar el procedimiento utilizado en la corrección inversa de gamma para corregir otras no-linealidades presentes en las imágenes. En [31] se presenta dicho enfoque para la corrección de la distorsión geométrica introducida por lentes cónicos.

• Idear aplicaciones que exploten otras características del Biespectro como es la propiedad de invariancia a corrimientos temporales (espaciales para el caso de las imágenes).

• Diseñar una interfaz gráfica que incluya en un ambiente más amigable los procedi-mientos utilizados en este trabajo y estime la cantidad de recursos computacionales requeridos.

93

Referencias

[1] Nikias C. and Raghuveer M. “Bispectrum Estimation: A Digital Signal Processing Framework,” IEEE Proceedings, vol. 75, July 1987, pp. 869-891 (ISSN 0018-9219).

[2] Mendel J. M. “Tutorial on Higher-Order Statistics (Spectra) in Signal Processing and System Theory: Theoretical Results and some Applications,” Proceedings of the IEEE, Vol. 79, (3), March 1991.

[3] Diant S.A., and Raghuveer M. R. “Fast algorithms for phase and magnitude reconstruction from bispectra,” Optical Engineering, vol. 29, No 5, May 1990, pp. 504–512.

[4] Erdem, A.T. and Sezan, M.I. “Least squares reconstruction of an image from its noisy observations using the bispectrum,” IEEE Conference Proceedings, Sixth SP Workshop on Statistical Signal and Array Processing, Oct 1992, pp.156-159 ISBN: 0-7803-0508-6.

[5] Kang M. G. and Katsaggelos A. K., “Deterministic estimation of the bispectrum and its application to image restoration,” IEEE Proceedings, Eur. Signal Processing Conf., Vol. 2, Trieste Italy, 1996, pp. 1449–1452.

[6] Zhou Wang, Alan C. Bovik, and Brian L. Evans. "Blind measurement of blocking artifacts in images," IEEE Proceedings, International Conference on Image Processing, Vol. 3, Vancouver,Canada, Sept. 2000, pp. 981–984.

[7] Mayntx C., Aach T., and Kunz D. “Blur identification using spectral inertia tensor and spectral zeros,” IEEE Proceedings, International Conference on Image Processing Vol. 2, Oct. 1999, pp.885 - 889.

[8] Berizzi F., Corsini G., Gatri F., and Gini F. “Cumulant based algorithms for autofocusing in ISAR/SAR (Synthetic Aperture Radar) systems,” IEEE Proceedings, International Conference on Image Processing, Vol. 3, Sept. 1996, pp. 887 - 890.

[9] Le Caillec J.M,. Garello R., and Chapron B. “Study of the second order approximation of the velocity bunching in the SAR imaging process using the bispectrum,” International Geoscience and Remote Sensing Symposium, Vol. 1, May 1996, pp. 612 - 614.

94 Referencias

[10] Le Caillec J.M., and Garello R. “Estimation of the phase content of SAR images of the ocean using 2D bispectrum estimation,” International Geoscience and Remote Sensing Symposium, Vol. 2, Jul 1995, pp. 1075-1077.

[11] Chandran V., Carswell B., Boashash B., and Elgar S. “Pattern Recognition using invariants defined from higher order spectra:2-D Image inputs,” IEEE Transactions on Image Processing, Vol. 6, Issue 5, May 1997, pp.703 - 712 .

[12] Hall T.E. and Giannakis G.B. “Bispectral analysis and model validation of texture images,” IEEE Transactions on Image Processing, Vol. 4, Issue 7, Jul 1995, pp.996 -1009.

[13] Jiang Xudong. “Fingerprint image ridge frequency estimation by higher order spectrum,” IEEE Proceedings, International Conference on Image Processing, Vol. 1, Sept. 2000, pp. 462–465.

[14] Tuthill P. G., Men'shchikov A. B., Schertl D., Monnier J. D., Danchi W. C. and Weigelt G. “Bispectrum Speckle Interferometry of the Red Rectangle: diffraction-limited near-infrared images reconstructed from Keck telescope speckle data,” Astronomy & Astrophysics 389, 2002, pp. 889-895.

[15] Sadler B. M. “Shift and Rotation Invariant Object Reconstruction Using Bispectrum,” Workshop on Higher-Order Spectral Analysis, Jun 1989, pp.106 - 111.

[16] Petropulu A.P. and Nikias C.L., “Signal reconstruction from the phase of the bispectrum,” IEEE Transactions on Signal Processing, Vol. 40(3), Mar 1992 pp.601-610.

[17] Astola J.T., Egiazarian K.O., Kurbatov I.V., and Totsky A.V., “Object Recognition By Bispectrum Based Image Reconstruction In Additive Noise And Line Jitter Environment,” Proceedings of a Workshop on Computational Intelligence and Information Technologies, Yugoslavia, Oct. 2003 pp. 131-134.

[18] Aviles V. Jaime and Rodríguez N. Julio “Procesamiento digital de señales de vibración con fines de diagnóstico,” Tesis de Maestría en Ciencias en Ingenieria Mecatrónica. CENIDET 2003.

[19] Sulub C. Edwin. “Desarrollo de Algoritmos de Procesamiento Digital de Señales para la Identificación de Sistemas utilizando Espectros de Alto Orden” Tesis (en desarrollo), Maestría en Ciencias en Ingeniería Electrónica, Sistemas Digitales CENIDET.

[20] Chellapa Rama. Digital Image Processing. IEEE Computer Society Press, 1992.

Referencias 95

[21] Gonzales Rafael, Woods Richard. Digital Image Pocessing.2nd Edition, Prentice Hall 2002.

[22] Castleman K. Digital Image Processing. 3rd Edition, Prentice Hall 1996.

[23] Farid H. “Blind Inverse Gamma Correction”. IEEE Transactions on Image Processing, Vol.10, Issue 10, Oct. 2001, pp.1428 - 1433.

[24] Lawrence T., Fitch P., and Goodman D. “Image reconstruction Using the Bispectrum,” 22nd Asilomar Conference on Signals, Systems and Computers, Vol. 1, 1988 pp. 58-62. ISSN: 1058-6393.

[25] “Image Processing ToolBox Reference File,” The Mathworks Inc, Matlab Release 13, 2002.

[26] Schofield M. and Zhu Yimei. “Fast phase unwrapping algorithm for interferometric applications” OSA Optics letter,s vol. 28, no.14, 2003, pp. 1194-1196.

[27] José Tribolet “A new phase unwrapping algorithm,” IEEE transactions on Acoustics, Speech and Signal Processing, Vol 25, Issue 2, 1977, pp.170-177.

[28] T. Erdem, “A Nonredundant set for the Bispectrum of 2-D Signals,” IEEE International Conference on Acoustics, Speech and Signal Processing ICASSP, Vol. 4, Apr. 1993, pp.188 - 191.

[29] Chandran V. and Elgar S., “Bispectral Analysis of Two-Dimensional Random Processes,” IEEE Trans. on Acoustics Speech and Signal Processing, Vol. 38, no. 12, Dec.1990, pp. 2181-2186.

[30] Sedwegick Robert C++ Algorithms. 1st Ed. Adison Wesley, 1995.

[31] Hany. Farid and Alin C. Popescu, “Blind removal of lens distortion,” Journal of the Optical Society of America, Optics, Image Science, and Vision, vol. 18, no. 9, Sept. 2001, pp. 2072-2078.

97

Apéndices A. Funciones de Matlab® En este apartado se presenta una descripción de las funciones incorporadas en Matlab que, de una u otra forma, se utilizaron en el desarrollo de los algoritmos y aplicaciones de esta tesis. Algunas de éstas son funciones básicas de Matlab (R13) mientras que otras son funciones incluidas en algunos de los toolboxes de propósito específico. Se presentan en orden alfabético indicando a que toolbox pertenecen y mostrando solo las características que fueron útiles para este trabajo.

abs Valor absoluto y magnitud compleja, función de Matlab. Sintaxis: Y = abs(X) Descripción: abs(X) regresa un arreglo tal que cada elemento de Y es el valor absoluto del elemento correspondiente de X. Si X es complejo, abs(X) regresa la magnitud. angle Ángulo de fase, función de Matlab. Sintaxis: P = angle(Z) Descripción: P = angle(Z) regresa los ángulos de fase, en radianes, para cada elemento del arreglo complejo Z. El valor de los ángulos está dentro del rango -π a π. blkproc Implementa procesamiento por bloques en imágenes, toolbox de procesamiento de imágenes (IPTB) Sintaxis: B = blkproc(A,[m n],fun) Descripción: B = blkproc(A,[m n],fun) procesa la imagen A aplicando la función fun a cada bloque distinto de A de dimensiones m por n. Rellena con ceros si es necesario. fun es una función que acepta una matriz x de m por n como entrada y regresa una matriz, vector o escalar y. Esto es y = fun(x). blkproc no requiere que y sea de igual tamaño que x, sin embargo, B será del mismo tamaño que A solo si y es del mismo tamaño que x. circshift Desplaza arreglos en forma circular, función de Matlab. Sintaxis: B = circshift(A,shiftsize) Descripción: B = circshift(A,shiftsize) desplaza circularmente los valores en el arreglo A, lo hace según el número de veces especificado por shiftsize, el cual es un escalar o un vector entero donde el n-ésimo elemento especifica la cantidad del desplazamiento para la n-ésima dimensión del arreglo A. Si un elemento de shiftsize es positivo, los valores de A se desplazan hacia abajo (o hacia la derecha). Si el elemento es negativo, los valores de A se desplazan hacia arriba (o a la izquierda). Si el valor es cero, los elementos de A en esa dimensión no se desplazan.

98 Apéndices

conv2 Convolución en dos dimensiones, función de Matlab. Sintaxis: C = conv2(A,B) Descripción: C = conv2(A,B) calcula la convolución bidimensional de las matrices A y B. Si una de estas matrices describe un filtro bidimensional de respuesta finita al impulso (FIR), se filtra la otra matriz en dos dimensiones. El tamaño de C en cada dimensión es igual a la suma de las correspondientes dimensiones de las matrices de entrada menos uno. Esto es, si el tamaño de A es [ma, na] y el tamaño de B es [mb, nb], entonces el tamaño de C es [ma+mb-1, na+nb-1]. fft Transformada Discreta (rápida) de Fourier, función de Matlab. Sintaxis: Y = fft(X) Y = fft(X,n)

Descripción: Y = fft(X) regresa la Transformada Discreta de Fourier (DFT) del vector X, calculada a través de un algoritmo de Transformada Rápida de Fourier (FFT). Si X es una matriz, fft regresa la Transformada de Fourier de cada columna. Si X es un arreglo multidimensional, fft opera sobre la primera dimensión con más de un elemento. Y = fft(X,n) regresa la DFT de n puntos. Si la longitud de X es menor que n, entonces se rellena X con ceros (al final del arreglo) hasta alcanzar la longitud n. Si la longitud es mayor que n, se trunca la secuencia X. Cuando X es una matriz, se ajusta la longitud de las columnas bajo el mismo enfoque. fft2 Transformada Discreta de Fourier de dos dimensiones, función de Matlab. Sintaxis: Y = fft2(X) Y = fft2(X,m,n)

Descripción: Y = fft2(X) regresa la DFT bidimensional de X, calculada a través de un algoritmo de Transformada Rápida de Fourier. Y resulta del mismo tamaño que X. Y = fft2(X,m,n) trunca o rellena X, según sea necesario, para crear un arreglo de m por n antes de realizar la transformación. El resultado es un arreglo de m por n. fftn Transformada Discreta de Fourier multidimensional, función de Matlab. Sintaxis: Y = fftn(X) Y = fftn(X,siz)

Descripción: Y = fftn(X) regresa la DFT multidimensional de X, calculada a través de un algoritmo multidimensional de Transformada Rápida de Fourier. Y resulta del mismo tamaño que X. Y = fftn(X,siz) trunca o rellena X, según sea necesario, para crear un arreglo multidimensional de tamaño siz antes de realizar la transformación. Y es de tamaño siz.

Apéndices 99

fftshift Desplazar la frecuencia cero de la DFT para centrar el espectro Sintaxis: Y = fftshift(X) Y = fftshift(X, dim)

Descripción: Y = fftshift(X) rearregla las salidas de las funciones fft, fft2 y fftn moviendo la componente de frecuencia cero hacia el centro del arreglo. Es útil para visualizar una transformada de Fourier con la componente de frecuencia cero en medio del espectro. Para vectores, fftshift(X) intercambia las mitades izquierda y derecha de X. Para matrices, fftshift(X) intercambia los cuadrantes uno y tres de X con los cuadrantes dos y cuatro. Para arreglos de dimensiones mayores, fftshift(X) intercambia “medios espacios” de X a través de cada dimensión. Y = fftshift(X,dim) aplica la operación fftshift a lo largo de la dimensión dim. filter2 Filtrado en dos dimensiones Sintaxis: Y = filter2(h,X) Descripción: Y = filter2(h,X) filtra los datos en X con el filtro FIR bidimensional defi-nido por la matriz h. Calcula el resultado usando correlación bidimensional regresando la parte central de la correlación que es del mismo tamaño de X. find Encuentra los índices y valores de los elementos distintos de cero, función de Matlab Sintaxis: k = find(x) [i,j] = find(X)

Descripción: k = find(x) regresa los índices del arreglo x que apuntan a elementos dife-rentes de cero. Si ningún elemento es diferente de cero, find regresa una matriz vacía. [i,j] = find(X) regresa los índices de renglón y de columna de los elementos diferentes de cero en la matriz X. for Repite instrucciones un número específico de veces, palabra reservada. Sintaxis: for variable = expression statements end

Descripción: Las columnas de expression se almacenan de una en una en la variable mientras se ejecutan las instrucciones siguientes. En la práctica, expression es casi siempre de la forma escalar:escalar caso en el que las columnas siempre son escalares. fspecial Crea filtros bidimensionales especiales, IPTB. Sintaxis: h = fspecial(type) h = fspecial(type,parameters)

Descripción: h = fspecial(type) crea un filtro bidimensional h del tipo especificado por type. Los tipos validos son: ‘gausian’, ‘sobel’, ‘prewitt’, ‘laplacian’, ‘log’, ‘average’, ‘unsharp’.

100 Apéndices

h = fspecial(type,parameters) acepta un tipo de filtro además de parámetros particulares a cada tipo de filtro. h = fspecial('average',hsize) regresa un filtro de tamaño hsize, el tamaño predeterminado es de 3 x 3. h = fspecial('disk',radius) regresa un filtro de promediado circular en una matriz de 2*radius+1, el valor por defecto es 5 para radius. h = fspecial('gaussian',hsize,sigma) regresa un filtro gaussiano rotacionalmente si-métrico pasabajas de tamaño hsize con desviación estándar sigma. h = fspecial('laplacian',alpha) regresa un filtro de 3 x 3 aproximando la forma del operador laplaciano bidimensional. alpha controla la forma del laplaciano en el rango de 0 a 1, el valor predeterminado es 0.2. h = fspecial('log',hsize,sigma) regresa el laplaciano rotacionalmente simétrico de un filtro gaussiano de tamaño hsize con desviación estándar sigma. h = fspecial('motion',len,theta) regresa un filtro para aproximar el movimiento lineal de una cámara por len píxeles con un ángulo theta. Los parámetros predeterminados son 9 y 0 respectivamente. h = fspecial('unsharp',alpha) regresa un filtro de 3 x 3 desde el negativo de un filtro laplaciano con el parámetro alpha. ifft Transformada Discreta (rápida) de Fourier Inversa, función de Matlab. Sintaxis: Y = ifft(X) Y = ifft(X,n)

Descripción: Y = ifft(X) regresa la Transformada Discreta de Fourier (DFT) inversa del vector X, calculada a través de un algoritmo de Transformada Rápida de Fourier (FFT). Si X es una matriz, ifft regresa la Transformada de Fourier Inversa de cada columna. Si X es un arreglo multidimensional, ifft opera sobre la primera dimensión con más de un elemento. Y = ifft(X,n) regresa la DFT inversa de n puntos. Para caulquier X, ifft(fft(X)) equivale a X dentro de un error de redondeo, si X es real, ifft(fft(X)) debe tener partes imaginaria muy pequeñas. ifft2 Transformada Discreta de Fourier inversa de dos dimensiones, función de Matlab. Sintaxis: Y = ifft2(X) Y = ifft2(X,m,n)

Descripción: Y = ifft2(X) regresa la DFT inversa bidimensional de X, calculada a través de un algoritmo de Transformada Rápida de Fourier. Y resulta del mismo tamaño que X. Y = ifft2(X,m,n) trunca o rellena X, según sea necesario, para crear un arreglo de m por n antes de realizar la transformación. El resultado es un arreglo de m por n.

Apéndices 101

Para caulquier X, ifft2(fft2(X)) equivale a X dentro de un error de redondeo, si X es real, ifft2(fft2(X)) debe tener partes imaginaria muy pequeñas. ifftn Transformada Discreta de Fourier inversa multidimensional, función de Matlab. Sintaxis: Y = ifftn(X) Y = ifftn(X,siz)

Descripción: Y = ifftn(X) regresa la DFT inversa multidimensional de X, calculada a través de un algoritmo multidimensional de Transformada Rápida de Fourier. Y resulta del mismo tamaño que X. Y = fftn(X,siz) trunca o rellena X, según sea necesario, para crear un arreglo multidimensional de tamaño siz antes de realizar la transformación. Y es de tamaño siz. Para caulquier X, ifftn(fftn(X)) equivale a X dentro de un error de redondeo, si X es real, ifftn(fftn(X)) debe tener partes imaginaria muy pequeñas. imag Parte imaginaria de un número complejo, función de Matlab Sintaxis: Y = imag(Z) Descripción: Y = imag(Z) regresa la parte imaginaria de los elementos del arreglo Z imadjust Ajusta los valores de intensidad o mapa de colores de una imagen, IPTB. Sintaxis: J = imadjust(I,[low_in high_in],[low_out high_out],gamma) Descripción: J = imadjust(I,[low_in high_in],[low_out high_out],gamma) mapea los valores en la imagen de intensidad I a nuevos valores en J tales que aquellos valores entre low_in y high_in correspondan a valores entre low_out y high_out. Los valores por debajo de low_in y por arriba de high_in son mapeados todos a los valores de low_out y high_out respectivamente. gamma especifica la forma de la curva que describe la relación entre los valores de I y J (corrección de gamma). imfilter Filtrado multidimensional de imágenes, IPTB Sintaxis: B = imfilter(A,H) B = imfilter(A,H,option1,option2...)

Descripción: B = imfilter(A,H) filtra el arreglo multidimensional A con el filtro multidimensional H. El resultado B es de la misma clase y tamaño que A. Cada elemento de B es calculado usando punto flotante de doble precisión (double). Si A es un arreglo entero, los elementos de salida que excedan el rango del tipo entero se truncarán y se redondearán los valores fraccionarios. B = imfilter(A,H,option1,option2,...) realiza el filtrado multidimensional de acuerdo a las opciones especificadas. Las opciones pueden ser de relleno de, opciones del tamaño de salida y opciones de correlación y convolución, los parámetros válidos son: X, ‘symmetric’, ‘replicate’, ‘circular’, ‘same’, ‘full’, ‘corr’, ‘conv’.

102 Apéndices

imhist Despliega un histograma de los datos de una imagen, IPTB. Sintaxis: imhist(I,n) Descripción: imhist(I,n) despliega un histograma con n barras para la imagen de intensidad I sobre una barra de color de longitud n. Si se omite el argumento n, imhist usa un valor predefinido de n=256 si I es una imagen de escala de grises o n=2 si I es una imagen binaria. imnoise Añade ruido a una imagen, IPTB Sintaxis: J = imnoise(I,type) J = imnoise(I,type,parameters)

Descripción: J = imnoise(I,type) añade ruido del tipo especificado a la imagen de intensidad I. type es una cadena de caracteres que puede tener uno de los siguientes valores: ‘gaussian’, ‘localvar’,’poisson’, ‘salt and pepper’, ‘speckle’. J = imnoise(I,type,parameters) acepta un algoritmo type además de parámetros adicionales, parameters, particulares para el tipo de algoritmo escogido. Para ruido gausiano se tiene: J = imnoise(I,’gaussian’,m,v) añade a la imagen I, ruido blanco gaussiano de media m y varianza v. Los valores por defecto son cero para la media y 0.01 para la varianza. imread Lee imágenes de archivos gráficos, función de Matlab. Sintaxis: A = imread(filename,fmt) [X,map] = imread(filename,fmt)

Descripción: La función imread soporta cuatro tipos generales de sintaxis, además soporta otros tipos específicos de acuerdo al formato del archivo. a continuación se presentan solo dos de los tipos más generales. A = imread(filename,fmt) almacena en A una imagen de escala de grises o de color ver-dadero llamada filename. Si el archivo contiene una imagen de escala de grises A resulta un arreglo bidimensional. Si el archivo contiene una imagen de color verdadero (RGB), A resulta en un arreglo tridimensional de m por n por 3. filename es una cadena que especifica el nombre del archivo gráfico y fmt es una cadena que especifica el formato del archivo. [X,map] = imread(filename,fmt) almacena en X la imagen indexada en el archivo gráfico filename y el mapa de colores asociado en map. Los valores del mapa de color se reescalan al rango de [0 1]. imshow Despliega una imagen, IPTB Sintaxis: imshow(I,n) imshow(I,[low high]) imshow(X,map)

Apéndices 103

Descripción: imshow(I,n) despliega la imagen de intensidad I con n niveles discretos de gris. Si se omite n, imshow usa 256 niveles de gris. Si se omite n e I puede ser una imagen RGB. imshow(I,[low high]) despliega I como una imagen de escala de grises especificando el rango de datos para I. El valor de low (y todos los valores menores) se despliega como negro mientras que el valor de high (y todos los valores mayores) se despliega como blanco. Si se usa una matriz vacía ([]) para [low high], imshow usa [min(I(:)) max(I(:))]. imshow(X,map) despliega la imagen indexada X con el mapa de color map. imwrite Escribe imágenes a archivos gráficos, función de Matlab. Sintaxis: imwrite(A,filename,fmt) imwrite(X,map,filename,fmt)

Descripción: imwrite(A,filename,fmt) escribe la imagen A en un archivo filename en el formato especificado por fmt. A puede ser una imagen de intensidad o una imagen RGB. filename es una cadena que especifica el nombre del archivo de salida. imwrite(X,map,filename,fmt) escribe la imagen indexada X y su mapa de color asociado map en un archivo gráfico filename. ind2gray Convierte una imagen indexada en una imagen de escala de grises, IPTB. Sintaxis: I = ind2gray(X,map) Descripción: I = ind2gray(X,map) convierte la imagen X con el mapa de color map a una imagen de intensidad I. ind2gray remueve la información de “hue” y “saturation” de la imagen de entrada mientras que retiene la luminancia. length Londitug de un vector, función de Matlab. Sintaxis: n = length(X) Descripción: La instrucción n = length(X) es equivalente a max(size(X)) para arreglos no vacíos y es cero para arreglos vacíos. n = length(X) regresa el tamaño de la dimensión más “larga” de X. mean Promedio o valores medios de arreglos, función de Matlab. Sintaxis: M = mean(A) M = mean(A,dim)

Descripción: M = mean(A) regresa los valores medios de los elementos a lo largo de las diferentes dimensiones de un arreglo. Si A es un vector, mean(A) regresa el valor medio de A. Si es una matriz, mean(A) trata a las columnas como vectores regresando un vector fila con los valores medios. M = mean(A,dim) regresa los valores medios para los elementos a lo largo de la dimensión de A especificada por dim.

104 Apéndices

medfilt2 Realiza filtrado bidimensional por mediana, IPTB. Sintaxis: B = medfilt2(A,[m n])

Descripción: El filtrado por mediana es una operación no lineal comúnmente utilizada para reducir ruido en imágenes. Este filtrado es más eficiente que la convolución cuando el objetivo es, simultáneamente, reducir el ruido y conservar los bordes. B = medfilt2(A,[m n]) realiza el filtrado bidimensional por mediana de la matriz A. Cada píxel de salida contiene la mediana de la vecindad de m por n correspondiente al mismo píxel en la imagen de entrada. medfilt2 rellena la imagen con ceros en los bordes, así que los valores para los puntos en [m n]/2 de los bordes pueden aparecer distorsionados. nlfilter realiza operaciones generales de vecindades deslizantes, IPTB Sintaxis: B = nlfilter(A,[m n],fun) Descripción: aplica la función fun a cada vecindad deslizante de m por n en A. fun es una función que acepta una matriz de m por n como entrada y regresa un resultado escalar. Esto es c = fun(x). c es el valor de salida para el píxel central en la vecindad x de m por n . nlfilter llama a fun para cada píxel en A. nlfilter rellena con ceros el bloque de m por n en caso de ser necesario. real Parte real de números complejos, función de Matlab. Sintaxis: X = real(Z) Descripción: X = real(Z) regresa la parte real de los elementos del arreglo complejo Z. rgb2gray Convierte imágenes o mapas de color a escala de grises, IPTB. Sintaxis: I = rgb2gray(RGB) newmap = rgb2gray(map)

Descripción: I = rgb2gray(RGB) convierte la imagen de color verdadero RGB a una imagen de escala de grises I. newmap = rgb2gray(map) regresa un mapa de escala de grises equivalente al mapa de color map. size Dimensiones de un arreglo, función de Matlab. Sintaxis: d = size(X) [m,n] = size(X) m = size(X,dim) [d1,d2,d3,...,dn] = size(X)

Descripción: d = size(X) regresa los tamaños de cada dimensión del arreglo X en un vector d. [m,n] = size(X) regresa el tamaño de la matriz X en las variables separadas m y n. m = size(X,dim) regresa el tamaño de la dimensión de X especificada por el escalar dim.

Apéndices 105

[d1,d2,d3,...,dn] = size(X) regresa los tamaños de las primeras n dimensiones del arreglo X en variables separadas. sum Suma de los elementos de un arreglo, función de Matlab. Sintaxis: B = sum(A) B = sum(A,dim)

Descripción: B = sum(A) regresa sumas a lo largo de las diferentes dimensiones de un arreglo. Si A es un vector, sum(A) regresa la suma de sus elementos. Si A es una matriz, sum(A) trata las columnas de A como vectores, regresando un vector columna con las sumas de cada columna. B = sum(A,dim) suma a lo largo de la dimensión de A especificada por el escalar dim. union Union de conjuntos de dos vectores, función de Matlab. Sintaxis: c = union(A,B) c = union(A,B,'rows')

Descripción: c = union(A,B) regresa los valores combinados de A y B pero sin repetirse. El vector resultante se acomoda en orden ascendente. Cuando A y B son matrices con el mismo número de columnas, c = union(A,B,'rows') regresa las columnas de A y B combinadas y sin repeticiones. xcorr Estima la función de correlación cruzada, toolbox de procesamiento de señales. Sintaxis: c = xcorr(x,y) c = xcorr(x)

Descripción: c = xcorr(x,y) estima la secuencia de correlación cruzada en un vector de longitud 2*N-1, donde x e y son vectores de longitud N (N>1). Si los vectores no son de la misma longitud, el vector más corto se rellena con ceros hasta completar la longitud del otro vector. c = xcorr(x) es la secuencia de auto correlación para el vector x. Si x es una matriz de N por P, c es una matriz con 2N-1 filas cuyas P2 columnas contienen las secuencias de correlación cruzada para todas las combinaciones de columnas de x. xcorr2 Estima la función de correlación cruzada en dos dimensiones, toolbox de procesamiento de señales. Sintaxis: C = xcorr2(A) C = xcorr2(A,B)

Descripción: C = xcorr2(A,B) regresa la correlación cruzada de las matrices A y B sin escalamiento. xcorr2 es la versión bidimensional de la función xcorr. xcorr2(A) es la matriz de auto correlación de A. Es idéntico a usar xcorr(A,A).

106 Apéndices

B. Funciones de análisis poliespectral El desarrollo de los algoritmos así como las aplicaciones de esta tesis produjeron funciones de implementación en Matlab relacionadas con el análisis poliespectral y la utilización del Biespectro en el procesamiento de imágenes.

Uno de los materiales complementarios de este trabajo es un disco compacto en donde se encuentran dichas funciones así como los resultados prácticos de la tesis además de material para la experimentación en el uso del Biespectro en el procesamiento de imágenes. En dicho material se encuentran las funciones de para el análisis desarrolladas en Matlab. A continuación se da una descripción de éstas.

BICt2D Términos para el cálculo de la Bicoherencia Sintaxis: [B,p1,p2] = BICt2D(r,x) Descripción: Calcula el Biespectro B y los términos de potencia p1 y p2 que se usan para el cálculo de la Bicoherencia. Lo hace a partir de la región reducida r y la matriz x de M por N. Los resultados son vectores la misma longitud que el número de filas de r. r es un arreglo bidimensional de RL por 4. RL depende del tamaño de x. BISd Biespectro por método directo Sintaxis: B = BISd(x) Descripción: Calcula el Biespectro de una señal en el tiempo utilizando el método directo. Regresa un arreglo complejo B de dos dimensiones de tamaño N x N. x es un vector de longitud N. BISd2D Biespectro de señal bidimensional, método directo Sintaxis: B = BISd2D(x) Descripción: Calcula el Biespectro bidimensional por el método directo. Regresa un arreglo complejo B de tipo double de 4 dimensiones. La entrada x es una matriz de m x n, la salida es un arreglo de m x n x m x n. BISd2DMP Biespectro de señal bidimensional, método directo, magnitud y fase. Sintaxis: [bm bp] = BISd2DMP(x) Descripción: Calcula el Biespectro de una señal bidimensional por el método directo. Regresa la magnitud biespectral bm y la fase biespectral bp. x es una matriz de m por n. Los resultados bm y bp son arreglos de 4 dimensiones de tipo double de m x n x m x n. BISd2DuP Biespectro de señal bidimensional, método directo, magnitud y fase desen-vuelta. Sintaxis: [bm bp] = BISd2DMP(x)

Apéndices 107

Descripción: Calcula el Biespectro de una señal bidimensional por el método directo. Regresa la magnitud biespectral bm y la fase biespectral bp desenvuelta. Es la versión con fase desenvuelta de BISd2DMP. BISi Biespectro por método indirecto Sintaxis: B = BISi(x) Descripción: Calcula el Biespectro de una señal en el tiempo utilizando el método indirecto (fft2 de cumulantes). Regresa un arreglo complejo B de dos dimensiones de tamaño N x N. x es un vector de longitud N. BISi2D Biespectro de señal bidimensional, método indirecto Sintaxis: B = BISi2D(x) Descripción: Calcula el Biespectro bidimensional por el método indirecto (fftn de los cumulantes). Regresa un arreglo complejo B de tipo double de 4 dimensiones. La entrada x es una matriz de m x n, la salida es un arreglo de m x n x m x n. BISr Biespectro reducido, no redundante. Sintaxis: B = BISr(r,x) Descripción: Calcula el Biespectro bidimensional utilizando una región reducida. El mé-todo utilizado es el directo. El argumento r corresponde a las coordenadas de la región reducida de MxN, debe ser un arreglo bidimensional con RL filas por 4 columnas. x es una matriz de MxN. El resultado es un vector complejo B de RL elementos cuyos valores corresponden a cada 4-upla de la región reducida. BISrMP Biespectro no redundante, magnitud y fase desenvuelta Sintaxis: [bm bp] = BISrMP(r,x) Descripción: Calcula el Biespectro de la matriz x a partir de la región reducida r. Regresa dos vectores con la magnitud bm, y la fase desenvuelta bp. Utiliza UNWRphi para desenvolver la fase. MPerdem Reconstrucción de magnitud y fase Sintaxis: [M P] = MPerdem(BM,BP) Descripción: Reconstruye la fft de una señal bidimensional a partir de su Biespectro. Re-gresa en M la magnitud y en P la fase, BM es la magnitud del Biespectro completo, BP es la fase desenvuelta del Biespectro completo. obtener_sims Simetrías no redundantes de una coordenada biespectral Sintaxis: sims = obtener_sims(4upl,M,N) Descripción: Obtiene las equivalencias no redundantes para la 4-upla 4upl correspondiente al Biespectro de una señal bidimensional de M por N. Utiliza las

108 Apéndices

ecuaciones de simetría del Biespectro bidimensional. 4upl debe ser un vector de 4 elementos, el resultado sims puede ser un arreglo con 1, 3, 6 o 12 filas por 4 columnas. Praugh Reconstrucción de fase Sintaxis: P = Praugh(BP) Descripción: Regresa la fase de la fft de una señal bidimensional P, a partir de su fase biespectral desenvuelta BP. PSDd PSD por método directo Sintaxis: Y = PSDd(X) Descripción: Regresa en Y la función de densidad espectral de potencia usando el método directo para la señal en el tiempo x. PSDd2D PSD de señal bidimensional por método directo Sintaxis: Y = PSD2D(X) Descripción: Versión bidimensional de PSDd. X es una matriz de m por n. PSDi PSD por método indirecto Sintaxis: Y = PSDi(X) Descripción: Calcula la PSD por el método indirecto (fft de auto correlación). PSDi2D PSD método indirecto para señales bidimensionales Sintaxis: Y = PSDi2D(X) Descripción: Versión bidimensional de PSDi, utiliza la auto correlación bidimensional. RECMP Biespectro completo a partir de Biespectro reducido Sintaxis: B = RECMP(r,bm,bp) Descripción: Regresa el Biespectro completo B construido a partir del Biespectro reducido, se deben introducir la magnitud bm y la fase bp por separado. Esta función no es eficiente para Biespectros grandes (M=N>48). redbis Obtiene la región reducida no redundante. Sintaxis: r = redbis(M,N) Descripción: Obtiene la región no redundante r correspondiente al Biespectro de una señal bidimensional de M por N. Utiliza un algoritmo de búsqueda por fuerza bruta. El resultado es un arreglo bidimensional de RL por 4 que contiene las coordenadas de los puntos no redundantes.

Apéndices 109

redreg Obtiene la región reducida Sintaxis: r = redreg(M,N) Descripción: Obtiene la región reducida r correspondiente al Biespectro de una señal bidimensional de M por N. Utiliza un algoritmo analítico. El resultado es un arreglo bidimensional de RL por 4 que contiene las coordenadas de la región reducida, si M y N son múltiplos de 6, entonces r es una región no redundante. UNWRphi Desenvolvimiento bidimensional de fase Sintaxis: up = UNWRphi(phi) Descripción: Regresa la fase desenvuelta up correspondiente a la fase envuelta de dos di-mensiones phi. Se usa en el algoritmo para desenvolver la fase biespectral de 4 dimensiones Xraugh Reconstrucción de magnitud a partir del Biespectro Sintaxis: X = Xraugh(bm,bp) Descripción: Regresa la magnitud de la fft X de una señal bidimensional dadas su magnitud y fase biespectral bm y bp.