Filtro de detección de líneas

Photoshop nos ofrece en la sección de filtros la posibilidad de diseñar el filtro de convolución que necesitemos.

En las fotos muestro como resolvi un acertijo de esos que tan frecuentemente aparecen en photoshop. Consistía en leer el texto escrito en una imagen formada por líneas inclinada. Esta:
icantsleep

Para resolverlo escribí una matriz que detectara todas las líneas diagonales que bajan de izquierda a derecha. Este:

icantsleep2

El filtro se ve a la derecha, es una matriz de 5×5. Los filtros se esccriben de manera que la suma de todas las casillas excepto la central sea igual al valor del centro. Las casillas vacías equivalen a 0. Los valores son más altos cuanto más cerca están del centro, lo que crea un filtro que da más importancia a los pixeles cercanos al calculado y menos a los lejanos.
La forma de operar de este tipo de filtros consiste en realizar una operación de matrices llamada “convolución” entre esta matriz y los pixels de la imagen.
La matriz que se ve en la figura representa a una imagen de 5×5 pixeles. Esta imagen se superpone a la imagen de manera que cada uno de los pixels del filtro (osea de las casillas) corresponda con un pixel de la imagen. La convolución consiste en multiplicar cada pixel de la matriz por cada pixel de la imagen que queda debajo, una vez multiplicados los 25 pixels se suman los resultados y se divide por la suma de todos los valores de la matriz. El resultado, que es una media ponderadsa de la imagen cuyos pesos son los pixels de la matriz, se coloca en la posición del pixel central de los 25 de la imagen tomados en cuenta.
El filtro que he hecho detecta las líneas inclinadas porque solo tiene valores en la dirección en la que busco las línas. Si hubiera utilizado solo una columna, por ejemplo, habría detectado líneas verticales. Mira como la suma de todos los valores da 0.

La suma de los valores de los pixels está relacionada con la energía empleada en el filtro (NO es la energía, está relacionada con ella). Podemos verlo como un factor de ganancia del filtro. Al ser 0 la suma la imagen de salida del filtro no ha cambiado su energía. Si lo hubiera hecho, o sea si la suma total fuera positiva la imagen sería más clara mientras que si fuera negativa habría salido más oscura.

 

 

Anuncios

Acerca de pacorosso

Romano provincial de la Bética. Fotógrafo y lector de luces.
Esta entrada fue publicada en Uncategorized. Guarda el enlace permanente.

Una respuesta a Filtro de detección de líneas

  1. No veo que la suma de los valores de igual a 0.
    De izquierda a derecha, de arriba abajo:
    1+1+1-1-1-1-1+1+1+1 = 2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s