// Regiones de una imagen. Una región es un grupo de píxeles del mismo valor, unidos por arriba,
// abajo, izquierda o derecha: las diagonales no cuentan. Usa imágenes solo por su interfaz.
#ifndef REGIONS_H
#define REGIONS_H

#include "image.h"

// Pinta con new_value toda la región que contiene al píxel (x, y). Los demás píxeles no cambian.
// Si la región ya vale new_value, no hace nada.
// Exige: (x, y) dentro de la imagen y 0 <= new_value <= image_max_value(img).
void flood_fill(Image *img, int x, int y, int new_value);

// Devuelve cuántas regiones tiene la imagen, sin cambiarla. Devuelve -1 si no hay memoria.
int count_regions(const Image *img);

#endif
