Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

normxcorr2

Correlación 2-D normalizada

Descripción

ejemplo

C = normxcorr2(template,A) calcula la correlación cruzada normalizada de las matrices y .templateUn La matriz resultante contiene los coeficientes de correlación.C

Opcionalmente, puede calcular la correlación cruzada normalizada usar una GPU (requiere ).Parallel Computing Toolbox™

Ejemplos

contraer todo

Lea dos imágenes en el espacio de trabajo y conviértalas a escala de grises para usarlas con .normxcorr2 Muestre las imágenes una al lado de la otra.

onion   = rgb2gray(imread('onion.png')); peppers = rgb2gray(imread('peppers.png')); imshowpair(peppers,onion,'montage')

Realice la correlación cruzada y muestre el resultado como una superficie.

c = normxcorr2(onion,peppers); figure, surf(c), shading flat

Encuentre el pico en correlación cruzada.

[ypeak, xpeak] = find(c==max(c(:)));

Tenga en cuenta el relleno que se agrega.normxcorr2

yoffSet = ypeak-size(onion,1); xoffSet = xpeak-size(onion,2);

Visualice el área coincidente.

figure imshow(peppers); imrect(gca, [xoffSet+1, yoffSet+1, size(onion,2), size(onion,1)]);

Argumentos de entrada

contraer todo

Plantilla de entrada, especificada como una matriz numérica. Los valores de no pueden ser todos iguales.template

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Imagen de entrada, especificada como una imagen numérica. debe ser mayor que la matriz para que la normalización sea significativa.Untemplate

La correlación cruzada normalizada es una operación indefinida en regiones donde no tiene ninguna varianza sobre la extensión completa de la plantilla.Un En estas regiones, asigna coeficientes de correlación de cero a la salida.normxcorr2C

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Argumentos de salida

contraer todo

Coeficientes de correlación, devueltos como una matriz numérica con valores en el rango [-1, 1].

Tipos de datos: double

Algoritmos

utiliza el siguiente procedimiento general, :normxcorr2[1][2]

  1. Calcule la correlación cruzada en el dominio espacial o de frecuencia, dependiendo del tamaño de las imágenes.

  2. Calcular sumas locales mediante la precomputación de sumas en ejecución .[1]

  3. Utilice sumas locales para normalizar la correlación cruzada para obtener coeficientes de correlación.

La implementación sigue de cerca la fórmula de:[1]

γ(u,v)=x,y[f(x,y)f¯u,v][t(xu,yv)t¯]{x,y[f(x,y)f¯u,v]2x,y[t(xu,yv)t¯]2}0.5

Dónde

  • f es la imagen.

  • t¯ es la media de la plantilla

  • f¯u,v es la media de f(x,y) en la región bajo la plantilla.

Referencias

[2] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume II, Addison-Wesley, 1992, pp. 316-317.

Capacidades ampliadas

Consulte también

|

Introducido antes de R2006a