2010-07-29 26 views
16

No entiendo qué es un kernel de convolución y cómo aplicaría una matriz de convolución a los píxeles de una imagen (estoy hablando de realizar una operación de desenfoque gaussiano en una imagen).Núcleos de desenfoque y convolución gaussianos

También podría obtener una explicación sobre cómo crear un kernel para una operación Gaussian Blur?

estoy leyendo this article pero me parece que no puede entender cómo se hacen las cosas ...

Gracias a cualquiera que se tome el tiempo para explicar esto a mí :),

ExtremeCoder

Respuesta

17

El básico La idea es que los nuevos píxeles de la imagen se crean mediante un promedio ponderado de los píxeles cercanos (imagine dibujar un círculo alrededor del píxel).

Para cada píxel de la imagen creará un pequeño cuadrado alrededor del píxel. Digamos que tomas los 8 vecinos junto a un píxel (incluidas las diagonales aunque no importen aquí), y llevamos a cabo un promedio ponderado para obtener el píxel medio.

En el caso de desenfoque gaussiano se divide en dos operaciones unidimensionales. Para cada píxel, tome la cantidad de píxeles junto a un píxel solo en la dirección de la fila. Multiplique el tiempo de los valores de píxel por los pesos calculados a partir de la distribución gaussiana (o si está haciendo esto para un efecto visual y no por una razón científica, los pesos pueden cualquier cosa que se vea bien) y resúmalos. Otra forma de verlo es que el píxel forma un vector y las ponderaciones lo convierten en un vector y usted está tomando el producto de puntos. Repita este proceso en la dirección de la columna como un pase separado.

10

Un kernel de convolución es una matriz de valores que especifica cómo la vecindad de un píxel contribuye al estado de ese píxel en la imagen final. Hay una descripción justa de los conceptos básicos here. Un desenfoque gaussiano es una función de convolución que utiliza una función realmente fea (has visto la página wikipedia) para calcular un núcleo de convolución para pasar sobre la imagen. Encontrará un kernel de ejemplo para un gaussiano en esa página de wikipedia.

El objetivo de todas las operaciones matemáticas es producir un desenfoque suave que se asemeje al patrón de dispersión producido por una malla colocada entre el observador y la imagen. Puedes pensar en el 'tamaño' (la desviación estándar) del gaussiano como relacionado con la distancia entre la imagen y la pantalla.

Cuestiones relacionadas