我试图使用来自MATLAB的normxcorr2(normalized cross-correlation)来计算发育中胚胎中运动形状的速度我有三个问题:
1)我的图像大小为260x360像素我给出一个10x10像素的模板大小,并请求命令在50x50像素的搜索窗口中的后续帧中搜索此模板我得到一个59x59大小的相关矩阵因此,这意味着该命令在搜索窗口中逐像素移动模板,以寻找最佳相关性对吗?
2)相关矩阵中的每个值表示搜索窗口中的模板矩阵对吗?
3)假设我在相关矩阵的第10行和第16列得到最大值这意味着最佳相关模板位于图像中y方向的第10个矩阵和x方向的第16个矩阵对吗?

最佳答案

要演示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)

09-16 19:05