Deteccion de Bordes

2013 Filtro de Procesamiento de imagen Detección de Bordes Iván Aliaga Andrade Introducción Una imagen digital no es

Views 99 Downloads 7 File size 819KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

2013 Filtro de Procesamiento de imagen Detección de Bordes

Iván Aliaga Andrade

Introducción Una imagen digital no es otra cosa que una especie de hoja de papel cuadriculado en el que cada una de las cuadriculas tiene asignado un color concreto especifico por medio de su código siendo las cuadriculas los pixeles. Para la mayoría de los filtros usan una “matriz de convolución”, y con este filtro se pueden crear filtros personalizados. Una matriz de convolución es una matriz cuadriculada que contiene valores numéricos enteros. Convolución es un tratamiento de una matriz por otra que se llama kernel. El filtro matriz de convolución usa una primera matriz que va ser la imagen a la que se va a tratar, el kernel o mascara usado depende del efecto deseado. Los filtros usan matrices 5x5 , 3x3 y otros pero las mas usadas son las 3x3 y son suficiente para los efectos que desees. El filtro examina sucesivamente cada pixel de la imagen. Los llamaremos pixeles iniciales, donde se multiplica el valor de este pixel y el valor de los 8 circundantes por el valor correspondiente del kernel o mascara, después se suman esos resultados, y el resultado se divide por la norma(es la suma de los números de la matriz del Kernel o mascara). Entonses se añade el resultado, y el pixel inicial se regula en este valor resultante final. Ej.

100 100 100 100 100

100 100 100 100 100

100 50 100 100 100

100 50 100 100 100

100 100 100 100 100

0 0 0

1 0 0 0 0 0

100 100 100 100 100

100 100 100 100 100

100 50 100 100 100

100 50 50 100 100

100 100 100 100 100

A la izquierda, la matriz de la imagen, cada pixel esta marcado con su valor. Al medio esta el kernel o la mascara y a la derecha esta el resultado. El filtro lee sucesivamente, de arriba a abajo y de izquierda a derecha, todos los pixeles del área de acción del kelnel o mascara. Se multiplica el valor de cada uno de ellos por el valor correspondiente del kernel o mascara y se suman los resultados, como en el ejemplo anterior

(100*0)+(50*1)+(50*0)+(100*0)+(100*0)+(100*0)+(100*0)+(100*0)+(100*0)+(100*0) = 50

Norma=0+1+0+0+0+0+0+0+0=1 entonces 50/1=50. El pixel inicial asumió el valor 50. El filtro no trabaja sobre la imagen sino sobre una copia, de esta manera cuando el filtro lea los pixeles no lea las modificaciones sino que el que la imagen que estaba antes que usaras el filtro.

Detección de bordes La detección de bordes es una herramienta fundamental en el procesamiento de imagen y en visión por computadora, particularmente en las áreas de detección y extracción de características, que tiene como objetivo la identificación de puntos en una imagen digital en la que el brillo de la imagen cambia drásticamente o, más formalmente, tiene discontinuidades. El mismo problema de encontrar discontinuidades en señales 1D se conoce como detección de paso. Algunos de los Operadores que se utilizan en el procesamiento de imagen son: - Sobel -Laplaciana -Prewitt

Operador Sobel El operador Sobel es utilizado en procesamiento de imágenes, especialmente en algoritmos en detección de bordes. Técnicamente es un operador discreto que calcula una aproximación al gradiente de la función de intensidad de una imagen. Para cada punto de la imagen a procesar, el resultado del operador Sobel es tanto el vector gradiente correspondiente como la norma de este vector. Los operadores de gradiente, en general, tienen el efecto de magnificar el ruido subyacente en la imagen, no obstante, el detector de Sobel se puede ver como la combinación de un filtro de suavizado del ruido con un operador de aproximación imprecisa del gradiente. Primera derivada bidimensional El algoritmo básicamente extrae la luminosidad de cada punto de la imagen. Matemáticamente el operador utiliza dos kernels o mascaras de 3x3 elementos para aplicar convolución a la imagen original para calcular aproximaciones a las derivadas, un kernel para los cambios horizontales y otro para las verticales. Si definimos

A como la

imagen original, el resultado, que son las dos imágenes Gx y Gy que representan para cada punto las aproximaciones horizontal y vertical de las derivadas de intensidades, es calculado como:

En cada punto de la imagen, los resultados de las aproximaciones de los gradientes horizontal y vertical pueden ser combinados para obtener la magnitud del gradiente, mediante:

En este ejemplo se muestra el algoritmo en acción sobre una imagen.

Para este histograma se ve que es mas abundante el negro que el blanco ya que hay mas barras a la izquierda que la derecha aunque hay una barra de los blancos que son los bordes que detecto.

Operador Laplaciano Segunda derivada bidimencional: En este caso se calcula la segunda derivada omnidireccional y se buscan cruces por cero que indiquen mínimos locales en el pixel evaluado (lo que indica un borde) El algoritmo es: - Extraer la luminosidad de cada punto de la imagen (igual que con primera derivada) - Calcular el valor del operador laplaciano para cada punto de la imagen, esto se puede hacer con una máscara 5×5 o como en este caso con una máscara 3×3 . El cálculo del valor de G es igual que para GX y GY en el caso de Sobel.

0 1 0 1 -4 1 0 1 0 -1 2 -1 2 -4 2 -1 2 -1

1 1 1 1 -8 1 1 1 1

I)

Para este histograma se ve que el negro es el que predomina pero también se ve que no hay blanco, solo llega hasta el gris.

II)

Para este histograma se ve que el negro es el que predomina y que hay una sola barra de blanco por los bordes y que hacen que se remarque mas.

III)

Este histograma muestra que predomina el negro y que hay blanco pero muy pequeño.

Operador de Prewitt El operador de Prewitt, al igual que el de Sobel, expande la definición del gradiante en una mascara de 3x3 para ser mas inmune al ruido, utilizando la misma ecuación Sobel pero con una constante c=1 A diferencia del operador de Sobel, este operador no otorga una importancia especial a pixeles cercanos al centro de la mascara.

En este histograma se ve que el que predomina es el negro pero además tiene más expandido las barras de grises osea que tiene mas variedad de grises además que el blanco que hay es solamente los bordes.

Conclusión Este trabajo permitió realizar una importante investigación a los principales operadores para la detección de bordes empleado en muchos de los sistemas que involucran el proceso de imágenes. Los tres operadores que vimos tienen ventajas y desventajas y con eso haremos una una elección correcta Con el operador Sobel encontraras como ventajas que tiene una buena respuesta en bordes horizontales y verticales, diversidad de tamaños en las máscaras, proporcionan un suavizado además del efecto de derivación. En el operador Prewitt tiene buena respuesta en bordes horizontales y verticales, poco sensible al ruido, proporciona la magnitud y dirección del borde. Y en el Laplaciano realiza una buena localización de los bordes siempre que las aristas se encuentren bien separadas y la relación señal-ruido de la imagen sea alta y es totalmente independiente de la orientación del borde por lo que ofrece una buena respuesta en la detección de bordes horizontales, verticales y diagonales. Las desventajas del operador Sobel son la mala respuesta en bordes diagonales, lentitud de cálculo, no da información acerca de la orientación del borde, anchura del borde de varios píxeles. Las del operador Prewitt tiene mala respuesta en bordes diagonales, lentitud de cálculo y Anchura del borde de varios píxeles. Y la del operador laplaciano a pesar de que este método es mas preciso, es muy sensible al ruido, por lo que las imagenes presentarán los bordes de compresión (especialmente en jpg) y los defectos de la imagenen. Esto brinda la posibilidad de hacer una primera discriminación respecto a cuales de ellos serian mas factibles de utilizar y en que orden, a fin de obtener una imagen a analizar con el menor ruido posible.