2009-11-08 14 views
5

Ich versuche normxcorr2 (normalized cross-correlation) von MATLAB für die Berechnung der Geschwindigkeit der sich bewegenden Formen in einem sich entwickelnden Embryo zu verwenden. Ich habe 3 Fragen:Grundlagen der normalisierten Kreuzkorrelation

1) Meine Bildgröße ist 260x360 Pixel. Ich gebe eine Vorlagengröße von 10x10 Pixeln und ich frage den Befehl, um diese Vorlage im folgenden Frame in einem Suchfenster von 50x50 Pixel zu suchen. Ich bekomme eine Korrelationsmatrix der Größe 59x59. Das bedeutet also, dass der Befehl die Vorlage Pixel für Pixel innerhalb des Suchfensters nach der besten Korrelation verschiebt. Recht?

2) Jeder Wert in der Korrelationsmatrix repräsentiert eine Vorlagenmatrix im Suchfenster. Recht?

3) Angenommen, ich bekomme ein Maximum in der 10. und 16. Spalte in der Korrelationsmatrix. Dies bedeutet, dass die am besten korrelierte Vorlage in der 10. Matrix in der y-Richtung und der 16. Matrix in der x-Richtung in dem Bild liegt. Recht?

Antwort

4

Um die Verwendung von normxcorr2 veranschaulichen, betrachten Sie das folgende Beispiel (angepasst von 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)