2009-11-08 17 views
5

मैं विकासशील भ्रूण में चलती आकृतियों के वेग की गणना के लिए MATLAB से normxcorr2 (normalized cross-correlation) का उपयोग करने का प्रयास कर रहा हूं। मेरे पास 3 प्रश्न हैं:सामान्यीकृत क्रॉस सहसंबंध की मूल बातें

1) मेरी छवि का आकार 260x360 पिक्सेल है। मैं 10x10 पिक्सल का टेम्पलेट आकार देता हूं और मैं 50x50 पिक्सल की एक खोज विंडो में बाद के फ्रेम में इस टेम्पलेट को खोजने के लिए कमांड से पूछता हूं। मुझे आकार 59x59 का सहसंबंध मैट्रिक्स मिलता है। तो इसका मतलब है कि आदेश टेम्पलेट पिक्सेल को पिक्सेल द्वारा खोज विंडो में सबसे अच्छा सहसंबंध की तलाश में ले जाता है। सही?

2) सहसंबंध मैट्रिक्स में प्रत्येक मान खोज विंडो में टेम्पलेट मैट्रिक्स का प्रतिनिधित्व करता है। सही?

3) कहें कि मुझे सहसंबंध मैट्रिक्स में 10 वीं पंक्ति और 16 वें कॉलम पर अधिकतम मिलता है। इसका मतलब है कि सबसे अच्छा सहसंबंधित टेम्पलेट वाई दिशा में 10 वें मैट्रिक्स और छवि में एक्स दिशा में 16 वें मैट्रिक्स में निहित है। सही?

उत्तर

4

normxcorr2 के उपयोग के उदाहरण देकर स्पष्ट करने के लिए, पर विचार निम्न उदाहरण (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) 
संबंधित मुद्दे