2009-11-08 28 views
5

Estoy tratando de usar normxcorr2 (normalized cross-correlation) de MATLAB para calcular la velocidad de las formas en movimiento en un embrión en desarrollo. Tengo 3 preguntas:Conceptos básicos de la correlación cruzada normalizada

1) El tamaño de mi imagen es de 260x360 píxeles. Doy un tamaño de plantilla de 10x10 píxeles y solicito al comando que busque esta plantilla en el cuadro siguiente en una ventana de búsqueda de 50x50 píxeles. Obtengo una matriz de correlación de tamaño 59x59. Esto significa que el comando mueve la plantilla píxel por píxel dentro de la ventana de búsqueda buscando la mejor correlación. ¿Derecha?

2) Cada valor en la matriz de correlación representa una matriz de plantilla en la ventana de búsqueda. ¿Derecha?

3) Digamos que obtengo un máximo en la 10ª fila y una 16ª columna en la matriz de correlación. Esto significa que la mejor plantilla correlacionada se encuentra en la 10ma matriz en la dirección y, y en la 16ma matriz en la dirección x en la imagen. ¿Derecha?

Respuesta

4

para ilustrar el uso de normxcorr2, considere el ejemplo siguiente (adaptado de this page)

%# Make light gray plus on dark gray background 
template = 0.2*ones(11); 
template(6,3:9) = 0.6; 
template(3:9,6) = 0.6; 
BW = single(template > 0.5);   %# Make white plus on black background 
imtool(template, 'InitialMagnification','fit') 

%# Make new image that offsets the template 
offsetTemplate = 0.2*ones(81); 
offset = [30 50];     %# Shift by 30 rows, 50 columns 
offsetTemplate((1:size(template,1))+offset(1), ... 
       (1:size(template,2))+offset(2)) = template; 
imtool(offsetTemplate, 'InitialMagnification',400) 

%# Cross-correlate BW and offsetTemplate to recover offset 
cc_norm = normxcorr2(BW, offsetTemplate); 
imtool(cc_norm, 'InitialMagnification',400) 
[max_cc_norm, imax] = max(abs(cc_norm(:))); 
[ypeak, xpeak] = ind2sub(size(cc_norm), imax(1)); 
corr_offset = [ (ypeak-size(template,1)) (xpeak-size(template,2)) ]; 

fprintf('Input offset: %d,%d\nRecovered offset: %d,%d\n', offset, corr_offset) 
Cuestiones relacionadas