Antes de empezar: una imagen son números
¿Qué es una imagen de mapa de bits?
- Es una cuadrícula de puntos llamados píxeles. Una imagen de 128 × 96 tiene 12.288 píxeles.
- Cada píxel guarda tres números de 0 a 255: cuánta luz roja, verde y azul tiene (modelo RGB). (0, 0, 0) es negro, (255, 255, 255) es blanco y (255, 0, 0) es rojo puro.
- En tu programa,
orig[y][x]es el píxel de la columnaxy la filay. Se empieza a contar en 0 y la fila 0 es la de arriba. - Un filtro es simplemente un programa que recorre los píxeles y calcula otros nuevos con una fórmula.
Sin matemáticas no hay filtros
- Brillo y contraste: funciones lineales, y = a·x + b.
- Gamma: potencias. Gris: medias ponderadas.
- Sepia: producto de una matriz por un vector.
- Giros: trigonometría (seno y coseno) y cambios de coordenadas.
- Desenfoque, enfoque, relieve: convolución con una matriz de pesos.
- Bordes: derivadas aproximadas y teorema de Pitágoras.
1 Elige una imagen
Cargando…
La imagen se reduce a este tamaño para que Python la procese deprisa. Con 32 px puedes ver los píxeles uno a uno.
2 Elige un filtro
3 El programa que hace el filtro Python…
Ctrl + Enter ejecuta. Tab escribe 4 espacios (en Python la sangría importa). Puedes editar el programa: el filtro es solo la fórmula, lo demás es recorrer los píxeles.
Antes y después
La ecuación: –
Histograma de brillos
línea: original · relleno: resultado. Cuenta cuántos píxeles hay de cada brillo (0 oscuro a la izquierda, 255 claro a la derecha; altura en raíz cuadrada). El brillo, el contraste y el gamma lo desplazan, lo estiran o lo curvan.