La forma más fácil es la conectividad 4 u 8 (ver conectividad Pixel).
Puede ser un algoritmo recursivo (en cuyo caso es muy fácil) que verifica el píxel de entrada si es cualquier color que no sea el color asignado o el color del límite / color anterior de la región. Si no es el color asignado, cambia el color del píxel, luego se llama a sí mismo en todos los demás píxeles conectados.
El pseudocódigo se ve así.
- ¿Por qué se han desarrollado los algoritmos de ordenamiento O (n ^ 2) (como el ordenamiento por inserción y el ordenamiento por burbuja) y para qué se utilizan?
- No entiendo las torres recursivas del problema de Hanoi. ¿Qué es?
- ¿Hay algún patrón dentro de la secuencia dada?
- ¿Cuáles son las aplicaciones de las tablas hash?
- ¿Cuál es más artístico, un programador o un piloto?
void colour_fill_4_connectivity (int x, int y, int fill_colour, int region_colour) {
if (píxel [x] [y] == color de relleno || píxel [x] [y]! = color_región)
regreso;
píxel [x] [y] = color de relleno;
colour_fill_4_connectivity (x-1, y, fill_colour, region_colour);
colour_fill_4_connectivity (x + 1, y, fill_colour, region_colour);
colour_fill_4_connectivity (x, y-1, fill_colour, region_colour);
colour_fill_4_connectivity (x, y + 1, fill_colour, region_colour);
}
Todas las regiones de color están cerradas en una imagen delimitada, por lo que si desea encontrar una región delimitada en una imagen, puede hacerlo simplemente comprobando si la región alcanza un píxel límite o no.