Eliminación de ruido y Tratamiento de partes alargadas en imágenes digitales
-
Upload
walter-clay -
Category
Documents
-
view
23 -
download
0
description
Transcript of Eliminación de ruido y Tratamiento de partes alargadas en imágenes digitales
Eliminación de ruido y Tratamiento de
partes alargadas en imágenes digitales
Siguiente
Anterior
Componentes del Grupo TD-28Componentes del Grupo TD-28
Julia Franco del PozoFco. Javier Gil CumbrerasRaúl Giráldez RojoRocío Martínez Sotomayor
Siguiente
Anterior
Indice de contenidosIndice de contenidos
1. Introducción y Objetivos.
2. Consideraciones Iniciales.
3. Contracción y Expansión.
4. Eliminación de Ruido.
4.1. Definición de Ruido.
4.2. Eliminación de Ruido Negro. Consecuencias.
4.3. Eliminación de Ruido Blanco.Consecuencias.
Siguiente
Anterior
Indice de contenidosIndice de contenidos
5. Partes Alargadas.
5.1. Definiciones.
5.2. Detección de Partes Alargadas.Conclusiones.
6. Algoritmos.
6.1. Contracción.
6.2. Expansión.
6.3. Calculo del MAT.
6.4. Tratamiento en 3D.
6.5. Partes Alargadas.
Siguiente
Anterior
1.Introducción y Objetivos.1.Introducción y Objetivos.
Objetivos. Eliminación de Ruido mediante contracción y expansión. Tratamiento de partes alargadas.
Aplicaciones. Reconocimiento de caracteres. Limpieza de imágenes. Suavizado de imágenes.
Siguiente
Anterior
2. Consideraciones Iniciales.2. Consideraciones Iniciales.
Representación de la imagen mediante matriz binaria.Objetos: se representan con el valor 1.
Background: se representa con el valor 0.
Implementación para 4 y 8-adyacencia. Tamaño del ruido 2x2 pixels. Tamaño y forma de la parte alargada. Borde exterior .
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Contracción.
Definición:
Una figura S se contrae k veces, eliminando k veces su borde, entendiendo como tal el conjunto de puntos que se encuentran a distancia 1 del complementario.
Se denota por S(-K)
Definición:
Una figura S se contrae k veces, eliminando k veces su borde, entendiendo como tal el conjunto de puntos que se encuentran a distancia 1 del complementario.
Se denota por S(-K)
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Contracción.
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Contracción.
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Expansión.
Definición:
Una figura S se expande k veces eliminando k veces el borde del complementario, entendiendo como tal el conjunto de puntos que se encuentran a distancia 1 de la imagen.
Se denota por S(K)
Definición:
Una figura S se expande k veces eliminando k veces el borde del complementario, entendiendo como tal el conjunto de puntos que se encuentran a distancia 1 de la imagen.
Se denota por S(K)
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Expansión.
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Expansión.
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión. Consecuencias de Contracciones y Expansiones
sucesivas.
1.- (S(-k)) (k) con k mayor que la mitad de la mayor anchura de la figura en pixels, la imagen se pierde.
2.- (S(k)) (-k) con k mayor que la mayor distancia de la figura al borde en pixels y menor que la mitad de anchura del fondo, la imagen queda como un cuadrado en 8-Ady o un rombo en 4-Ady.
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Consecuencias de Contracciones y Expansiones.
Siguiente
Anterior
3. Contracción y Expansión.3. Contracción y Expansión.
Consecuencias de Compresiones y Expansiones sucesivas.
3.- N x ((S(-k)) (k)) = (S(-k)) (k)
N x ((S(-k)) (z)) /= (S(-k)) (z) con k /= z
4.- N x ((S(k)) (-k)) = (S(k)) (-k)
N x ((S(k)) (-z)) /= (S(k)) (-z) con k /= z
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.1. Definición de Ruido.
Definición:
Grupo de pixels no deseados que se añaden a la imagen. Es necesario definir un patrón para poder identificarlo y eliminarlo.
Definición:
Grupo de pixels no deseados que se añaden a la imagen. Es necesario definir un patrón para poder identificarlo y eliminarlo.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.1. Definición de Ruido.
Tipos:
Negro: Ruido con el mismo valor que los objetos (1).
Blanco: Ruido con el mismo valor que el background (0).Ruido con el mismo valor que el background (0).
Tipos:
Negro: Ruido con el mismo valor que los objetos (1).
Blanco: Ruido con el mismo valor que el background (0).Ruido con el mismo valor que el background (0).
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.1. Definición de Ruido.
Tamaño: 2x2 pixels.
Depende del tamaño de la imagen.
Tamaño 1x1 elimina ruido 2x2.
Tamaño: 2x2 pixels.
Depende del tamaño de la imagen.
Tamaño 1x1 elimina ruido 2x2.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.2. Eliminación de Ruido Negro.
Pasos:
1º Contraer.
2º Expandir.
Ejemplos:
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.2. Eliminación de Ruido Negro.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.2. Eliminación de Ruido Negro.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.2. Eliminación de Ruido Negro.
Consecuencias.
1._ No conserva la Topología.– Componentes conexas nuevas.– Eliminación de agujeros.
2._Elimina grupos de pixels de dimensiones: 1x1, 1x2, 2x1, 2x2.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.2. Eliminación de Ruido Negro.
Consecuencias.
3._Grupos de pixels de dimensiones 1xN, 2xN, Nx1, Nx2. (N>2):
– Desaparecen totalmente si forman una componente conexa.– Si no, en 4-ady, se eliminan parcialmente. En 8-ady, se
eliminan en su totalidad.
PROBLEMA: Se eliminan partes de la imagen
que no son ruido.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.2. Eliminación de Ruido Negro.
Consecuencias.
4._Se suavizan los bordes.
5._Si la imagen no es suficientemente grande la deforma.
6._Si dos componentes conexas blancas están separadas por una distancia menor o igual
que 2, se unirán en una sola.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.2. Eliminación de Ruido Negro. Consecuencias. EJEMPLO.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.3. Eliminación de Ruido Blanco.
Pasos:
1º Expandir.
2º Contraer.
Ejemplos:
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.3. Eliminación de Ruido Blanco.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.3 Eliminación de Ruido Blanco.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.3. Eliminación de Ruido Blanco.
Consecuencias.
1._ No conserva la Topología.– Componentes conexas nuevas.– Eliminación de agujeros.
2._Elimina grupos de pixels de dimensiones: 1x1, 1x2, 2x1, 2x2.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.3. Eliminación de Ruido Blanco.
Consecuencias.
3._Grupos de pixels de dimensiones 1xN, 2xN, Nx1, Nx2. (N>2):
– Desaparecen totalmente si forman una componente conexa.– Si no, en 4-ady, se eliminan parcialmente. En 8-ady, se
eliminan en su totalidad.
PROBLEMA: Se eliminan partes de la imagen
que no son ruido.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.3. Eliminación de Ruido Blanco.
Consecuencias.
4._Se suavizan los bordes.
5._Si la imagen no es suficientemente grande la deforma.
6._Si dos componentes conexas negras están separadas por una distancia menor o igual
que 2, se unirán en una sola.
Siguiente
Anterior
4. Eliminación de ruido.4. Eliminación de ruido.
4.3. Eliminación de Ruido Blanco. Consecuencias. EJEMPLO.
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.1. Definiciones.
Área de una figura (A):
Número de pixels que la componen.
Espesor de una figura (t):
Si K es el número de veces que debe contraerse la figura S para desaparecer, el espesor de S será como mucho de 2*K.
Área de una figura (A):
Número de pixels que la componen.
Espesor de una figura (t):
Si K es el número de veces que debe contraerse la figura S para desaparecer, el espesor de S será como mucho de 2*K.
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.1. Definiciones.
Figura Alargada:
Se dice que una figura S es alargada si su área es grande respecto a k2
A>=C* k2
C= constante definida para expresar que A es mucho mayor que k2 .
Figura Alargada:
Se dice que una figura S es alargada si su área es grande respecto a k2
A>=C* k2
C= constante definida para expresar que A es mucho mayor que k2 .
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.1. Definiciones.
Figura Alargada: EJEMPLO.
11111111 1111111111111111111111 11111111 111111111111111111
111111111111111111111111
A= 40, k=3 A= 40, k=1
Figura Alargada: EJEMPLO.
11111111 1111111111111111111111 11111111 111111111111111111
111111111111111111111111
A= 40, k=3 A= 40, k=1
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.1. Definiciones.
Parte Alargada de una figura:
Grupo de pixels que, obtenidos de la diferencia entre la figura original y la resultante de contraer y expandirla k veces, cumplen el criterio de figura alargada.
S- (S(-K) )k
Parte Alargada de una figura:
Grupo de pixels que, obtenidos de la diferencia entre la figura original y la resultante de contraer y expandirla k veces, cumplen el criterio de figura alargada.
S- (S(-K) )k
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.1. Definiciones.
Parte Alargada de una componente conexa: EJEMPLO
11111111 11111111111111111111 11111111111111111111 11111111 11 A= 58, k=1
Parte Alargada de una componente conexa: EJEMPLO
11111111 11111111111111111111 11111111111111111111 11111111 11 A= 58, k=1
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.2. Detección de Partes Alargadas. Pasos:
1º Contraer y expandir la imagen k veces.
2º Restar el resultado a la imagen original.
Obtención de componentes conexas.
3º Aplicación del criterio de figura alargada a cada componente conexa.
Si lo cumple, se elimina.
Si no lo cumple se une a la imagen resultado del primer paso .
Ejemplos:
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.2. Detección de Partes Alargadas.
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.2. Detección de Partes Alargadas.
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.2. Detección de Partes Alargadas. Conclusiones:
1._Los valores asignados a k y C deben ser coherentes con el tamaño de la imagen, ya
que
- partes que visualmente parecen alargadas pueden no serlo según el criterio definido y no se eliminarán.
- pueden desaparecer partes de la imagen que no deberían ser eliminadas.
Siguiente
Anterior
5. Partes Alargadas.5. Partes Alargadas.
5.2. Detección de Partes Alargadas. Conclusiones:
2._La solución más efectiva para solucionar el problema de las partes alargadas sería
realizar un estudio progresivo, sobre la imagen, utilizando distintos valores de k y un valor de la constante C significativo para el tamaño de la imagen que se está estudiando.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.1. Contracción.
- Contracción Directa sobre la imagen original.
- Contracción Directa sobre una copia.
- Contracción K-veces usando la representación MAT.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.1. Contracción.
Contracción Directa sobre la original:
Para cada pixel(x,y) Negro de ORIGINAL
Si tiene vecino Blanco entonces
pixel(x,y) = MARCADO
fin si
fin para.
Para cada pixel(x,y) MARCADO de ORIGINAL
pixel(x,y) = 0
fin para.
Contracción Directa sobre la original:
Para cada pixel(x,y) Negro de ORIGINAL
Si tiene vecino Blanco entonces
pixel(x,y) = MARCADO
fin si
fin para.
Para cada pixel(x,y) MARCADO de ORIGINAL
pixel(x,y) = 0
fin para.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.1. Contracción.
Contracción Directa sobre una copia:
Para cada pixel(x,y) de ORIGINAL
Si es blanco o tiene vecino Blanco entonces
pixel-copia(x,y) = 0
sino
pixel-copia(x,y) = 1
fin si
fin para.
Contracción Directa sobre una copia:
Para cada pixel(x,y) de ORIGINAL
Si es blanco o tiene vecino Blanco entonces
pixel-copia(x,y) = 0
sino
pixel-copia(x,y) = 1
fin si
fin para.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.1. Contracción.
Contracción K-veces usando la representación MAT :
MAT = Calcula-MAT(ORIGINAL)
Para cada distancia(x,y) >= K de MAT
distancia(x,y) = distancia(x,y) -K
fin para. /* MAT tiene el MAT de la img. contraída*/
Para cada distancia(x,y) !=0 de MAT
pixel(x,y) = 1
fin para.
Contracción K-veces usando la representación MAT :
MAT = Calcula-MAT(ORIGINAL)
Para cada distancia(x,y) >= K de MAT
distancia(x,y) = distancia(x,y) -K
fin para. /* MAT tiene el MAT de la img. contraída*/
Para cada distancia(x,y) !=0 de MAT
pixel(x,y) = 1
fin para.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.2. Expansión.
- Expansión Directa sobre la imagen original.
- Expansión Directa sobre una copia.
- ¿Por qué no es posible la expansión K-veces usando la representación MAT ?.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.2. Expansión.
Expansión Directa sobre la original :
Para cada pixel(x,y) Blanco de OROGINAL
Si tiene vecino Negro entonces
pixel(x,y) = MARCADO
fin si
fin para.
Para cada pixel(x,y) MARCADO de OROGINAL
pixel(x,y) = Negro
fin para.
Expansión Directa sobre la original :
Para cada pixel(x,y) Blanco de OROGINAL
Si tiene vecino Negro entonces
pixel(x,y) = MARCADO
fin si
fin para.
Para cada pixel(x,y) MARCADO de OROGINAL
pixel(x,y) = Negro
fin para.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.2. Expansión.
Expansión Directa sobre una copia :
Para cada pixel(x,y) de OROGINAL
Si es Negro o tiene vecino Negro entonces
pixel-copia(x,y) = 1
sino
pixel-copia(x,y) = 0
fin si
fin para.
Expansión Directa sobre una copia :
Para cada pixel(x,y) de OROGINAL
Si es Negro o tiene vecino Negro entonces
pixel-copia(x,y) = 1
sino
pixel-copia(x,y) = 0
fin si
fin para.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.2. Expansión.
¿Por qué no es posible la expansión K-veces usando la representación MAT ?.
Recorrer el MAT y sumar K a cada una de las distancias mayores que 0 no proporciona el MAT de la imagen extendida. Habría que reconstruir el MAT completamente calculando las nuevas distancias de aquellos pixels que fueran blancos.
¿Por qué no es posible la expansión K-veces usando la representación MAT ?.
Recorrer el MAT y sumar K a cada una de las distancias mayores que 0 no proporciona el MAT de la imagen extendida. Habría que reconstruir el MAT completamente calculando las nuevas distancias de aquellos pixels que fueran blancos.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.3. Calculo del MAT. Algoritmo del Doble Rastreo.
- Calculo del MAT para 4-Adyacencias (4-MAT).
- Calculo del MAT para 8-Adyacencias (8-MAT).
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.3. Calculo del MAT. Algoritmo del Doble Rastreo.
Calculo del 4-MAT:
Primer rastreo (Sentido de izq. a dch. Y de arriba a abajo):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces
P = 1
sino
P = Min (Q1,Q2) + 1
fin si
fin para
Calculo del 4-MAT:
Primer rastreo (Sentido de izq. a dch. Y de arriba a abajo):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces
P = 1
sino
P = Min (Q1,Q2) + 1
fin si
fin para
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.3. Calculo del MAT. Algoritmo del Doble Rastreo.
Calculo del 4-MAT:
Segundo rastreo (Sentido de dch. a izq. y de abajo a arriba):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces
P = 1
sino
P = Min (P, Q1+1, Q2+1)
fin si
fin para
Calculo del 4-MAT:
Segundo rastreo (Sentido de dch. a izq. y de abajo a arriba):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces
P = 1
sino
P = Min (P, Q1+1, Q2+1)
fin si
fin para
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.3. Calculo del MAT. Algoritmo del Doble Rastreo.
Calculo del 8-MAT:
Primer rastreo (Sentido de izq. a dch. Y de arriba a abajo):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces
P = 1
sino
P = Min (Q1,Q2,Q3,Q4) + 1
fin si
fin para
Calculo del 8-MAT:
Primer rastreo (Sentido de izq. a dch. Y de arriba a abajo):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces
P = 1
sino
P = Min (Q1,Q2,Q3,Q4) + 1
fin si
fin para
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.3. Calculo del MAT. Algoritmo del Doble Rastreo.
Calculo del 8-MAT:
Segundo rastreo (Sentido de dch. a izq. y de abajo a arriba):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces P = 1
sino
P = Min (P, Q1+1, Q2+1
, Q3+1, Q4+1)
fin si
fin para
Calculo del 8-MAT:
Segundo rastreo (Sentido de dch. a izq. y de abajo a arriba):
Para cada punto (x,y) Negro de ORIGINAL
Si es del borde entonces P = 1
sino
P = Min (P, Q1+1, Q2+1
, Q3+1, Q4+1)
fin si
fin para
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.4. Tratamiento en 3D.
- Algoritmos de calculo directo.
- Algoritmos de calculo por capas.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.4. Tratamiento en 3D.
Algoritmos de calculo directo:
Usamos la misma filosofía que con 2 dimensiones pero ahora tenemos que considerar:
- 6-Adyacencia
-26-Adyacencia
Cada pixel tiene 6 o 26 vecinos que hay que considerar.
Algoritmos de calculo directo:
Usamos la misma filosofía que con 2 dimensiones pero ahora tenemos que considerar:
- 6-Adyacencia
-26-Adyacencia
Cada pixel tiene 6 o 26 vecinos que hay que considerar.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.4. Tratamiento en 3D.
Algoritmos de calculo por capas:
Estos algoritmos consisten en tratar la imagen 3D recorriendo todas las planos de 2D que forman la imagen. A cada una de estas matrices se les aplica el algoritmo hecho para 2D.
Para hacer un tratamiento completo de la imagen en 3D hay que hacer dos barridos, uno para los planos horizontales y otro para los planos verticales.
Algoritmos de calculo por capas:
Estos algoritmos consisten en tratar la imagen 3D recorriendo todas las planos de 2D que forman la imagen. A cada una de estas matrices se les aplica el algoritmo hecho para 2D.
Para hacer un tratamiento completo de la imagen en 3D hay que hacer dos barridos, uno para los planos horizontales y otro para los planos verticales.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.4. Tratamiento en 3D.
Algoritmos de calculo por capas:
Este algoritmo sólo es válido para 6-Adyacencia.
Algoritmos de calculo por capas:
Este algoritmo sólo es válido para 6-Adyacencia.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
ÓRDENES: Se supone que la imagen es una matriz de FILAS*COLUMNAS=N2.
Contracción Directa sobre el original:O(N2). Contracción Directa sobre una copia:O(N2). Contracción desde el MAT: O(N2). Expansión Directa sobre el original:O(N2). Expansión Directa sobre una copia:O(N2). Cálculo del MAT: O(N2). Algoritmo Directo 3D: O(N3). Algoritmo por Capas 3D: O(N3).
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.5. Partes Alargadas.
Algoritmo de detección y eliminación de partes alargadas:
Contraer y expandir k veces la imagen original.Realizar la diferencia entre la imagen original y la imagen resultante del paso anterior.Obtener todas las componentes conexas de la imagen diferencia.Para cada componente conexa obtenida se estudia si cumple el criterio (área de la componente es mucho mayor que k2).
si cumple el criterio se elimina.en caso contrario se une a la imagen resultante del primer paso.
Algoritmo de detección y eliminación de partes alargadas:
Contraer y expandir k veces la imagen original.Realizar la diferencia entre la imagen original y la imagen resultante del paso anterior.Obtener todas las componentes conexas de la imagen diferencia.Para cada componente conexa obtenida se estudia si cumple el criterio (área de la componente es mucho mayor que k2).
si cumple el criterio se elimina.en caso contrario se une a la imagen resultante del primer paso.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.5. Partes Alargadas.
Algoritmo de búsqueda de componentes conexas:
Para cada pixel negro, se comprueba su vecino (i,j-1). Si este también es negro, el pixel que estamos analizando se anota con la misma etiqueta que su vecino.Además, en este caso, se comprueba si el vecino (i-1,j) del pixel que se está analizando es negro también.
si es así, comprobar si éste tiene la misma etiqueta que el vecino (i,j-1).
si no tuviera la misma etiqueta, anotar la equivalencia entre ambas etiquetas.
Algoritmo de búsqueda de componentes conexas:
Para cada pixel negro, se comprueba su vecino (i,j-1). Si este también es negro, el pixel que estamos analizando se anota con la misma etiqueta que su vecino.Además, en este caso, se comprueba si el vecino (i-1,j) del pixel que se está analizando es negro también.
si es así, comprobar si éste tiene la misma etiqueta que el vecino (i,j-1).
si no tuviera la misma etiqueta, anotar la equivalencia entre ambas etiquetas.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.5. Partes Alargadas.
Para anotar una equivalencia se tiene una lista de equivalencias, donde equivalencia[N]=M significa que los pixels anotados con etiqueta N forman parte de la misma componente conexa que los anotados con etiqueta M, donde M es menor que N.Si en el primer paso, el vecino (i,j-1) no fuera negro, se pasa a comprobar el vecino (i-1,j)
-si es negro, anotar la etiqueta del pixel que se está analizando como la de dicho vecino.
-si no es negro, al pixel que se está analizando se le anota la siguiente etiqueta, que será nueva.
Para anotar una equivalencia se tiene una lista de equivalencias, donde equivalencia[N]=M significa que los pixels anotados con etiqueta N forman parte de la misma componente conexa que los anotados con etiqueta M, donde M es menor que N.Si en el primer paso, el vecino (i,j-1) no fuera negro, se pasa a comprobar el vecino (i-1,j)
-si es negro, anotar la etiqueta del pixel que se está analizando como la de dicho vecino.
-si no es negro, al pixel que se está analizando se le anota la siguiente etiqueta, que será nueva.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.5. Partes Alargadas.
Después de anotar todas las etiquetas de todos los pixels, según el criterio explicado antes, se revisan las equivalencias. Para esto se recorre la lista de equivalencias en orden inverso, y cuando tenga un caso como el explicado antes equivalencia[N]=M, para todos los pixels que tengan anotada la etiqueta N, se les cambia dicha etiqueta por M.Así, al final, todas las componentes tienen su etiqueta que es única para cada componente. Y para extraer cada componente sólo se recorre la imagen y se toman los pixels que tienen la etiqueta que nos interesa.
Después de anotar todas las etiquetas de todos los pixels, según el criterio explicado antes, se revisan las equivalencias. Para esto se recorre la lista de equivalencias en orden inverso, y cuando tenga un caso como el explicado antes equivalencia[N]=M, para todos los pixels que tengan anotada la etiqueta N, se les cambia dicha etiqueta por M.Así, al final, todas las componentes tienen su etiqueta que es única para cada componente. Y para extraer cada componente sólo se recorre la imagen y se toman los pixels que tienen la etiqueta que nos interesa.
Siguiente
Anterior
6. Algoritmos.6. Algoritmos.
6.5. Partes Alargadas.
ÓRDENES: Se supone que la imagen es una matriz de FILAS*COLUMNAS=N2.
Algoritmo que contrae y expande k veces la imagen: (3k+1)* N2 es decir O(N2).
Algoritmos que realizan la diferencia y la unión entre dos matrices: cada uno O(N2 ).
Algoritmo que da la lista de componentes conexas: (numcomponentes+1)* N2, es decir O(N2).
Algoritmo que extrae las componentes conexas de la lista de componentes: O(N2).