5

我正在尝试使用MATLAB 中的normxcorr2归一化互相关)来计算发育胚胎中移动形状的速度。我有3个问题:

1) 我的图像尺寸是 260x360 像素。我给出了 10x10 像素的模板大小,并要求命令在 50x50 像素的搜索窗口中的后续帧中搜索此模板。我得到一个大小为 59x59 的相关矩阵。所以这意味着该命令在搜索窗口中逐个像素地移动模板以寻找最佳相关性。正确的?

2) 相关矩阵中的每个值代表搜索窗口中的一个模板矩阵。正确的?

3)假设我在相关矩阵的第 10 行和第 16 列得到最大值。这意味着最佳相关模板位于图像中y方向的第10个矩阵和x方向的第16个矩阵中。正确的?

4

1 回答 1

4

为了说明normxcorr2的使用,请考虑以下示例(改编自此页面

%# 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)
于 2009-11-08T02:14:48.943 回答