// Filtros: cambian la imagen en su lugar. Ya están hechos, y ninguno reserva memoria.
#ifndef FILTERS_H
#define FILTERS_H

#include "image.h"

// Cada píxel p pasa a max_value - p.
void invert(struct image *img);

// Cada píxel mayor o igual que level pasa a max_value. Los demás, a 0.
void threshold(struct image *img, int level);

// Espejo izquierda-derecha: cada fila queda al revés.
void flip_horizontal(struct image *img);

// Calcula el mínimo, el máximo y el promedio de los píxeles.
void image_stats(const struct image *img, int *min, int *max, double *mean);

#endif
