0

我正在使用 xcorr2(A,A) 来计算自相关。但是,输出大于 A。我应该如何修剪输出以找到正确的自相关矩阵?例如,我的 A 矩阵为 51x51,输出为 101x101。很明显,中心点与自身具有最大的相关性,在这种情况下位于 (26,26),但在新的自相关图中,它位于 (51,51)。我需要一种通用方法来修剪最终输出。

4

1 回答 1

2

一般来说,假设 A 是 M×N 矩阵,您必须在第一维中从 M/2 到 3M/2 取 M 个点,在第二维N/2 到 3N/2 取 N 个点:

[M, N] = size(A);
cor = xcorr2(A);  %# Shorter form of xcorr(A, A)
C = cor(ceil(M / 2):floor(3 * M / 2), ceil(N / 2):floor(3 * N / 2))

C将是修剪后的输出。

编辑:
对于任何两个矩阵AB,结果xcorr2(A, B)将是 (M A +M B -1)×(N A +N B -1) 矩阵。但是,在这里,如果矩阵的维度不同,您必须自己决定要提取哪个部分。如果要提取重要的中心部分,可以这样做:

[MA, NA] = size(A);
[MB, NB] = size(B);
v = [MA + MB, NA + NB] / 4; %# Just a temporary vector
cor = xcorr2(A, B);
C = cor(ceil(v(1)):floor(3 * v(1)), ceil(v(2)):floor(3 * v(2))
于 2012-09-11T00:23:56.860 回答