CAMARENA / CUEVAS / DIAZ CORTES
Contenido
Prólogo XIII
Capítulo 1
Acerca del procesamiento de imágenes 1
1.1 Introducción 2
1.2 Sistema de visión y procesamiento de imágenes 2
1.3 Procesamiento digital de imágenes 3
1.4 Relaciones básicas entre pixeles 3
1.4.1 Vecinos de un pixel 3
1.4.2 Conectividad 4
1.5 Medidas de distancia 5
Capítulo 2
Principios básicos de MATLAB 7
2.1 Introducción 8
2.2 Consideraciones iniciales 8
2.3 Lectura, despliegue y escritura de imágenes 9
2.4 Tipos de datos 10
2.5 Tipos de imágenes en MATLAB 10
2.5.1 Imágenes en escala de grises 10
2.5.2 Imágenes binarias 11
2.6 Conversión entre diferentes tipos de datos y de imágenes 11
2.6.1 Conversión entre tipos de datos 11
2.6.2 Conversión entre diferentes tipos de imágenes 11
2.7 Indexado de vectores y matrices 12
2.7.1 Indexado de vectores 13
2.7.2 Indexado de matrices 13
2.8 Operaciones sobre matrices completas 15
2.9 Programación en MATLAB 16
2.10 Estructuras de control para la programación 18
2.10.1 Estructura if y else if 19
2.10.2 Estructura for 20
2.10.3 Estructura while 20
2.10.4 break y continue 21
2.10.5 Estructura switch 21
Capítulo 3
Transformada de Fourier 23
3.1 Introducción 24
3.2 Acerca de la transformada de Fourier 24
3.2.1 Funciones del seno y coseno 24
3.2.2 Frecuencia y amplitud 25
3.2.3 Fase 26
3.2.4 Ortogonalidad 26
3.2.5 La notación de Euler 27
3.2.6 Serie de Fourier para la representación de señales periódicas 29
3.3 La integral de Fourier 29
3.4 La transformada de Fourier 30
3.4.1 Pares de transformada de Fourier 32
3.5 Propiedades de la transformada de Fourier 34
3.5.1 Simetría 34
3.5.2 Linealidad 34
3.5.3 Escalamiento 35
3.5.4 Traslación 35
3.5.5 Propiedad de la convolución 35
3.6 Consideraciones hacia señales discretas 36
3.6.1 Muestreo 36
3.6.2 Muestreo mediante la función impulso 37
3.6.3 La función peine 38
3.6.4 Efecto del muestreo en la transformada de Fourier 39
3.6.5 El teorema de muestreo y el fenómeno del alias 43
3.6.6 Funciones discretas y periódicas 43
3.7 La transformada discreta de Fourier (DFT) 44
3.7.1 Definición de la DFT 44
3.8 Cálculo de la DFT de MATLAB 46
3.9 Espectro de potencia de Fourier 48
Capítulo 4
Operaciones de pixel 51
4.1 Introducción 52
4.2 Cambio del valor de la intensidad del pixel 53
4.2.1 Contraste e iluminación o brillo 53
4.2.2 Delimitación de los resultados por operaciones de pixel 54
4.2.3 Complemento de la imagen 55
4.2.4 Segmentación por umbral 55
4.3 Histograma y operaciones de pixel 57
4.3.1 Histograma 57
4.3.2 Características de toma de una imagen 59
4.3.3 Cálculo del histograma de una imagen con MATLAB 62
4.3.4 Histogramas de imágenes a color 63
4.3.5 Efectos de las operaciones de pixel en el histograma 65
4.3.6 Adaptación automática del contraste 66
4.3.7 Histograma acumulativo 69
4.3.8 Ecualización lineal del histograma 70
VIII Contenido
4.3.9 Adaptación del histograma por especificación 72
4.3.10 Probabilidades e histogramas de frecuencias 74
4.3.11 Principio del ajuste del histograma por especificación 74
4.3.12 Distribuciones de referencia lineal por partes 75
4.3.13 Ajuste a un histograma en particular 77
4.4 Corrección Gamma 78
4.4.1 La función Gamma 79
4.4.2 Utilización de la corrección Gamma 80
4.5 Operaciones de pixel en MATLAB 81
4.5.1 Cambio de contraste e iluminación en MATLAB 81
4.5.2 Segmentación de una imagen por umbral usando MATLAB 81
4.5.3 Ajuste de contraste con MATLAB 82
4.5.4 Ecualización del histograma usando MATLAB 83
4.6 Operaciones de pixel de múltiples fuentes 88
4.6.1 Operaciones lógicas y aritméticas 88
4.6.2 Operación de mezclado Alfa 90
Capítulo 5
Segmentación y tratamiento de imágenes binarias 93
5.1 Introducción 94
5.2 Segmentación 94
5.3 Umbralización 95
5.4 Cálculo del umbral óptimo 98
5.5 Algoritmo Otsu 99
5.6 Segmentación por crecimiento de región 103
5.6.1 Pixel inicial 103
5.6.2 Búsqueda local 103
5.7 Etiquetado de objetos en imágenes binarias 108
5.8 Contornos de objetos 118
5.8.1 Contornos externos e internos 118
5.8.2 Combinación de identificación de contornos y etiquetado de objetos 119
5.9 Representación de objetos binarios 132
5.9.1 Codificación de longitud 132
5.9.2 Código 133
5.10 Características de los objetos binarios 136
5.10.1 Características 136
5.10.2 Características geométricas 137
Capítulo 6
Filtraje espacial 141
6.1 Introducción 142
6.3 Filtros lineales espaciales 144
6.3.1 Matriz del filtro 144
6.3.2 Operación de los filtros 145
6.4 Cálculo de las operaciones de filtro en MATLAB 146
6.5 Tipos de filtros lineales 150
6.5.1 Filtros de suavizado 150
6.5.2 Filtros de diferencia 152
6.6 Características formales de los filtros lineales 153
6.6.1 Convolución lineal y correlación 154
6.6.2 Propiedades de la convolución lineal 156
6.6.3 Separabilidad de los filtros 157
6.6.4 Respuesta al impulso de un filtro 158
6.7 Adición de ruido a imágenes con MATLAB 160
6.8 Filtros no lineales espaciales. 164
6.8.1 Filtros máximos y mínimos 165
6.8.2 Filtro de la mediana 167
6.8.3 Filtro de la mediana con ventana de multiplicidad 169
6.8.4 Otros filtros no lineales 171
6.9 Filtros espaciales lineales en MATLAB 172
6.9.1 Tamaño de la correlación y convolución 172
6.9.2 Manejo de las fronteras de la imagen 177
6.9.3 Funciones de MATLAB para filtros lineales espaciales 180
6.9.4 Funciones de MATLAB para el filtraje espacial no lineal 182
6.10 Filtro binario 186
6.10.1 Implementación del filtro binario en MATLAB 189
Capítulo 7
Detección de bordes 195
7.1 Introducción 196
7.2 Bordes y contornos 196
7.3 Detección de bordes con técnicas del gradiente 196
7.3.1 Derivada parcial y gradiente 197
7.3.2 Filtro derivada 198
7.4 Filtros para la detección de bordes 199
7.4.1 Operadores Prewitt y Sobel 200
7.4.2 Operador Roberts 203
7.4.3 Operadores de Kirsch (compás) 204
7.4.4 Detección de bordes con MATLAB 205
7.4.5 Funciones de MATLAB para la detección de bordes 210
7.5 Operadores basados en la segunda derivada 212
7.5.1 Detección de bordes con la segunda derivada 212
7.5.2 Mejora de nitidez en las imágenes 212
7.5.3 Filtro Laplaciano y nitidez de la imagen 216
7.5.4 Filtro Canny 218
X Contenido
Capítulo 8
Determinación de esquinas 221
8.1 Introducción 222
8.2 Esquinas en una imagen 222
8.3 Algoritmo de Harris 222
8.3.1 Matriz de estructuras 223
8.3.2 Filtrado de la matriz de estructuras 223
8.3.3 Cálculo de los valores y vectores propios 223
8.3.4 Función del valor de la esquina (V) 225
8.3.5 Determinación de los puntos esquina 226
8.3.6 Implementación del algoritmo 226
8.4 Determinación de puntos esquina con MATLAB 230
8.5 Otros detectores de esquinas 236
8.5.1 Detector Beaudet 236
8.5.2 Detector Kitchen & Rosenfeld 240
8.5.3 Detector de Wang & Brady 243
Capítulo 9
Detección de líneas 249
9.1 Introducción. Estructuras en una imagen 250
9.2 Transformada de Hough 250
9.2.1 Espacio de parámetros 252
9.2.2 Matriz de registros de acumulación 254
9.2.3 Cambio de modelo paramétrico 255
9.3 Implementación de la transformada de Hough 256
9.4 Codificación de la transformada de Hough en MATLAB 260
9.5 Detección de líneas mediante funciones de MATLAB 268
9.5.1 Detección de líneas de las funciones de MATLAB 270
Capítulo 10
Operaciones morfológicas 275
10.1 Introducción 276
10.2 Contracción y crecimiento de estructuras 276
10.2.1 Tipos de vecindad entre pixeles 278
10.3 Operaciones morfológicas fundamentales 278
10.3.1 Estructura de referencia 279
10.3.2 Conjunto de puntos 279
10.3.3 Dilatación 280
10.3.4 Erosión 281
Contenido XI
10.3.5 Propiedades de la dilatación y erosión 282
10.3.6 Diseño de filtros morfológicos 283
10.4 Detección de bordes en imágenes binarias 285
10.5 Combinación de operaciones morfológicas 287
10.5.1 Apertura 287
10.5.2 Cierre 288
10.5.3 Propiedades de las operaciones apertura y cierre 288
10.5.4 Transformación de éxito o fracaso (?hit-or-miss') 288
10.6 Filtros morfológicos para imágenes a escala de grises 290
10.6.1 Estructura de referencia 290
10.6.2 Dilatación y erosión para imágenes de intensidad 291
10.6.3 Apertura y cierre con imágenes a escala de grises 293
10.6.4 Transformación top-hat y bottom-hat 296
10.7 Funciones de MATLAB para operaciones morfológicas 297
10.7.1 Función strel 298
10.7.2 Funciones de MATLAB para la dilatación y erosión 301
10.7.3 Funciones de MATLAB que involucran apertura y cierre 302
10.7.4 Función bwmorph 303
10.7.5 Etiquetado de componentes convexos 306
Índice analítico 309
XII Contenido
Las imágenes representan una de las formas de transmitir información con mayor potencial. En esta obra se presentan los conceptos y técnicas fundamentales del procesamiento digital de imágenes, esto es, se expone la teoría y la práctica de temas básicos y avanzados de los sistemas de visión artificial, todo esto con el fin de que: Conozca los conceptos y técnicas de análisis del procesamiento digital de imágenes. Aprenda las técnicas algorítmicas asociadas al procesamiento digital de imágenes y su programación en MATLAB. Aplique el conocimiento y ejecución de los algoritmos usados para la manipulación, mejoramiento, realzado y detección de imágenes. Erik Cuevas es Ingeniero en Comunicaciones y Electrónica por parte de la Universidad de Guadalajara, Maestro en Electrónica Industrial por el ITESO y Doctor en Inteligencia Artificial por la Universidad Libre de Berlín (FU-Berlín) en Alemania; actualmente, es miembro del Sistema Nacional de Investigadores Nivel II en el área del cómputo evolutivo y sus aplicaciones al procesamiento de imágenes. Margarita Díaz Cortés es Ingeniera Biomédica y Maestra en Ciencias de la Ingeniería Electrónica y Computación por parte de la Universidad de Guadalajara; actualmente, realiza su doctorado en Ciencias Computacionales en la Universidad Libre de Berlín. José Octavio Camarena Méndez es Ingeniero Electrónico con especialidad en Instrumentación Biomédica por parte del Instituto Tecnológico de Morelia (ITM) y Maestro en Ciencias en Ingeniería Electrónica y Computación por la Universidad de Guadalajara; actualmente, estudia el doctorado en Ciencias de la Electrónica y Computación en el Centro Universitario de Ciencias Exactas e Ingenierías.