Fusión de etiquetas según las distancias entre centroides
En este notebook fusionaremos etiquetas en una imagen etiquetada según las distancias entre sus centroides. Las etiquetas cercanas se fusionarán.
Ver también
Con fines de demostración, usamos una versión modificada de las etiquetas derivadas de la imagen de ejemplo de blobs. Introducimos artificialmente espacios entre ellas.
|
cle._ image
| shape | (254, 256) |
| dtype | uint32 |
| size | 254.0 kB |
| min | 0.0 | | max | 47.0 |
|
De esta imagen, extraemos las coordenadas de los centroides. A partir de estos centroides, podemos construir una matriz de distancias. En esta matriz, se calcula la distancia de todos los centroides a todos los demás centroides. La diagonal es cero, ya que corresponde a la distancia de un centroide a sí mismo. Además, la distancia al fondo (primera fila y primera columna) también es cero, ya que el fondo no se considera para el cálculo de distancias.
|
cle._ image
| shape | (48, 48) |
| dtype | float32 |
| size | 9.0 kB |
| min | 0.0 | | max | 324.1848 |
|
Podemos aplicar un umbral a esta matriz de distancias con una distancia máxima dada. El resultado es una matriz binaria.
|
cle._ image
| shape | (48, 48) |
| dtype | uint8 |
| size | 2.2 kB |
| min | 0.0 | | max | 1.0 |
|
Si fusionáramos etiquetas con el fondo, todas las etiquetas se fusionarían porque todas tocan el fondo. Para evitar esto, establecemos la primera fila y columna en cero.
|
cle._ image
| shape | (48, 48) |
| dtype | uint8 |
| size | 2.2 kB |
| min | 0.0 | | max | 1.0 |
|
Usando la matriz binaria anterior, ahora podemos fusionar las etiquetas en consecuencia.
|
cle._ image
| shape | (254, 256) |
| dtype | uint32 |
| size | 254.0 kB |
| min | 0.0 | | max | 4.0 |
|