Correlacion Matlab

Identificación Identificación y Color David García Pérez Tratamiento Computacional de Imágenes Identificación a través

Views 105 Downloads 3 File size 404KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Identificación

Identificación y Color David García Pérez Tratamiento Computacional de Imágenes

Identificación a través de correlación: Con la correlación se trata de encontrar todos los lugares en una imagen que aparece una subimagen

f (x, y) ◦ w (x, y) ⇔ F (u, v) H ∗ (u, v) De forma simalar a la convolución, la correlación espacial se puede conseguir a través de la multiplicación de la transformada de Fourier de la imagen por la transformada conjugada de la subimagen. En Matlab el preceso de correlación se realiza a través del siguiente comando g = dftcorr(f,w); donde g es la imagen resultado del proceso, f es la imagen original y w es la subimagen.

Color Representación del color en Matlab: Se representa a través de una matriz MxNx3, donde M es el ancho de la imagen, N es alto de la imagen, y existen 3 matrices, una por cada componente de color en el espacio que se este representando. Usualmente suele ser RGB (Red, Green y Blue) Para cada pixel de la imagen, en vez de tener un valor numérico representando el nivel de gris, tenemos un vector que representa el color. Cada componente del vector representa la intensidad de color en el canal correspondiente

Color Representación del color en Matlab: En Matlab a parte de representar el color en RGB, se pueden usar otros espacios de color como: CMY, CMYK, HSV, HSI, NTSC, etc... En este caso solamente se van a usar RGB y CMY Representación a través de un mapa de color: Otra forma diferente de representar una imagen en Matlab es a través de un mapa de color, donde tenemos una imagen representada por una matriz X (MxN), y una matriz C de dimensión Kx3 que representa el espacio de color, siendo K el número de colores que existe en ese espacio Cada componente de la matriz X es un entero entre 1 y K. Para saber el color que tiene ese pixel, simplemente seleccionamos la fila correspondiente de C, los tres valores de esa fila representan el color del pixel correspondiente

Color

Color

Conversión de representaciones: Para cambiar una imagen representación RGB a Colormap se usa el siguiente comando [X, map] = rgb2ind(f, numero_colores, opción); donde f es la imagen original en formato MxNx3 y en espacio de color RGB. numero_colores es el número máximo de colores que va a tener nuestro mapa de colores. opción puede ser: ‘dither’ y ’nodither’. La primera opción escogerá los colores a los cuales vamos a reducir el espacio de color RGB de forma inteligente, en función de los colores que existen en la imagen. En el segundo valor, sencillamente escalará los valores de manare proporcional. Como resultado devuelve X y map. El primero es la imagen con los índices y el segundo es el mapa de colores. Para representar el resultado lo representamos de la siguiente forma figure, imshow(X, map);

Filtrado: El filtrado de imágenes en color se efectúa de la misma forma que con imágenes de niveles de grises, con imfilter, pero en vez de pasarle como opción una imagen en niveles de grises se pasa una imagen en color A la hora de filtrar se filtran cada una de las imágenes de componentes de color de forma independiente y después se vuelven a unir en una única imagen con tres componentes de color

Color

Color

Detección de bordes de color: La detección de bordes ya nos es directamente transformable como el filtrado, no vale detectar los bordes en cada componente y después unir las imágenes. Ahora el problema es de detección de bordes es el siguiente (r, g y u son vectores unitarios)

!u =

∂R r ∂x !

!v =

∂R r ∂y !

+

∂G g ∂x !

+

∂B g ∂x !

+

∂G g ∂y !

+

∂B g ∂y !

! ! ! ! ! ! ! ∂R !2 ! ∂G !2 ! ∂B !2 ! +! ! +! ! gxx = !ut !u = !! ! ! ! ! ∂x ∂x ∂x !

Color

F está representando la magnitud del gradiente en la dirección !, dirección donde el gradiente tiene un máximo Para calcular el valor de F se usa el siguiente comando [VG, A, PPG] = colorgrad(f); donde f es la imagen original. VG es la imagen de bordes. A es una imagen que representa el valor del ángulo.Y PPG es una imagen que contiene la suma de los gradientes en niveles de grises de cada una de las componentes de color de la imagen f.

! ! ! ! ! ! ! ∂R !2 ! ∂G !2 ! ∂B !2 ! +! ! +! ! gyy = !v t!v = !! ! ! ! ! ∂y ∂y ∂y !

! !! ! ! !! ! ! !! ! ! ∂R ! ! ∂R ! ! ∂G ! ! ∂G ! ! ∂B ! ! ∂B ! !! !+! !! !+! !! ! gxy = !ut!v = !! ∂x ! ! ∂y ! ! ∂x ! ! ∂y ! ! ∂x ! ! ∂y ! θ (x, y) =

Fθ (x, y) =

!

! " 1 2gxy tan−1 2 gxx − gyy

" 21 1 [(gxx + gyy ) + (gxx − gyy ) cos (2θ) + 2gxy sin (2θ)] 2