You are on page 1of 13

Haga clic para modificar el estilo de subttulo del patrn

EDGE HISTOGRAM
6/28/12

EDGE HISTOGRAM

Edge Histogram es el descriptor que

se encarga de representar la distribucin espacial de cinco tipos de contornos en regiones locales de una imagen.
Es capaz de reconocer cuatro

contornos direccionales, es decir, con una direccin claramente marcada, y un contorno de tipo no direccional.
6/28/12

EDGE HISTOGRAM
De

este modo el objetivo es encontrar imgenes semejantes a otras imgenes, ya sea a travs de ejemplos o de esbozos, especialmente en el caso de imgenes naturales con distribuciones de bordes no uniformes. de las imgenes puede verse significativamente mejorada si dicho descriptor es combinado con otros descriptores, como los descriptores de color.

En este contexto la eficacia de reconocimiento

6/28/12

EDGE HISTOGRAM

Edge Histogram divide la imagen en 16 sub-

imgenes (4x4 bloques no solapados), de los cuales tras un posterior procesado se obtiene un total de 80 valores denominados Bincounts que forman el histograma de bordes que caracteriza dicha imagen.

6/28/12

EDGE HISTOGRAM Implementacin


Primeramente se crea la estructura de tipo

descriptor denominada VdEdgeHistogram, la cual esta formada por un vector de 80 valores tipo short encargado de almacenar los valores que forman el histograma de bordes y que lleva el nombre de Bincounts.
Se compone de 80 valores ya que podemos

analizar 5 tipos de bordes diferentes por cada uno de las 16 sub-imgenes en las que se divide una imagen (16x5=80).
6/28/12

EDGE HISTOGRAM Implementacin


Bincounts[k] Bincounts[0]

Definicin Bordes vertical en sub-image Bordes horizontal en subBordes de 45 grados en subBordes de135 grados en subBordes no direccional en sub6/28/12 Bordes vertical en sub-image

(0,0)
Bincounts[1]

image (0,0)
Bincounts[2]

image (0,0)
Bincounts[3]

image (0,0)
Bincounts[4]

image (0,0)
Bincounts[5]

EDGE HISTOGRAM Implementacin


La definicin de la estructura junto con las

cabeceras de todas las dems funciones y acciones necesarias en la especificacin del descriptor son guardadas en el archivo de cabecera VdEdgeHistogram.h
En

segundo lugar se crean comunes para un descriptor.

las

funciones

La funcin de alocar memoria para la estructura

del descriptor VdEdgeHistogramAlloc, donde tenemos como salida un puntero de tipo VdEdgeHistogram que apunta a dicha estructura.
La

accin

de

liberar

memoria 6/28/12

EDGE HISTOGRAM Implementacin

La funcin de extraccin de valores de descriptor VdEdgeHistogramGetBin, donde le entramos un vector que apunta a una estructura VdEdgeHistogram junto con una posicin entre 0 y 79 correspondiente al vector Bincounts, y como resultado obtenemos un valor tipo short que corresponde al valor de la posicin introducida. accin de copiado de descriptores VdEdgeHistogramCopy, la encargada de copiar el contenido de un descriptor origen en otro destino del mismo tipo.
6/28/12 a disco del descriptor, las cuales permiten

La

Y finalmente las funciones de lectura y escritura

EDGE HISTOGRAM Implementacin


Se

puede observar que en este tipo de descriptor la funcin VdEdgeHistogramSet no existe, ya que realizara el mismo proceso que la funcin VdEdgeHistogramCalculate que ser explicada ms adelante. se crean las funciones especficas del descriptor. Las principales son VdEdgeHistogramCalculate, la cual tiene como funcin obtener el vector de valores Bincounts a partir de una imagen de entrada, y VdEdgeHistogramSimilarity que es la responsable de medir la similitud entre dos descriptores de entrada dando como respuesta un valor entre 0 y 1. 6/28/12

Seguidamente

EDGE HISTOGRAM Implementacin


En primer lugar es necesario comprobar que los

parmetros de entrada no estn vacos, lo que se gestiona con un comando que imprime por pantalla error en el caso que suceda esta situacin. Como se ha comentado anteriormente lo primero que se necesita para calcular dicho descriptor es dividir la imagen de entrada en 16 bloques, 4x4 bloques no solapados, por lo tanto lo primero que se comprueba es que las dimensiones en anchura y altura de la imagen sean mltiples de cuatro para poder hacer un procesado correcto. En caso contrario tambin se obtendr un mensaje por pantalla advirtiendo del error.
6/28/12

EDGE HISTOGRAM Implementacin


El objetivo es ir separando cada una de las 16

sub-imgenes como si se tratase de una imagen independiente para poder procesarlas por separado. Para ello se crean dos variables que fijan la posicin del bloque con el cual se esta trabajando, como se observa en la figura 10. Por ejemplo si las dos variables son x e y, y las dos valen 0, se corresponde con el bloque de la esquina superior izquierda. El recorrido de los bloques se hace de izquierda a derecha, tal y como nos indica la tabla de Bincounts que muestra la Tabla 1. Ya que se puede observar que el primer bloque ha analizar es el (0,0) y el siguiente el (0,1).
6/28/12

EDGE HISTOGRAM Implementacin


A partir de este momento empieza el procesado

de la nueva imagen (sub-imagen), lo que se repetir para cada una de las 16 nuevas imgenes.
Primeramente se filtra el bloque con la funcin

denominada DetectionEdges

6/28/12

EDGE HISTOGRAM Implementacin


Dicha funcin tiene como propsito filtrar una imagen

de entrada con una imagen adecuada que detecte unos bordes determinados en la imagen inicial. Para ello se establece como parmetros de entrada un puntero tipo struct image que apunta a la imagen que se desea procesar, ms un valor entre 0 y 3 que indica que tipo de contornos, verticales (0), horizontales (1), de 45 grados (2) y de 135 grados (3), se quiere detectar. A continuacin se crean cuatro casos diferentes para cada uno de los valores que puede adoptar. Para cada caso la imagen ser filtrada con una imagen de tamao tres por tres pxeles como las que se muestran a continuacin:

6/28/12

You might also like