主要内容

xcorr2

二维互相关

描述

例子

c= xcorr2 (一个,b)返回的互相关矩阵一个b没有扩展。xcorr2是二维的版本xcorr

c= xcorr2 (一个)自相关矩阵的输入矩阵吗一个。这个语法是等价的xcorr2(一个)

例子

全部折叠

创建两个矩阵,M1平方米

M1 = [17 24 1 8 15;23日5 7 14 16;4 6 13 20 22;10十二19 21 3;11 18 25 2 9];1平方米= [8 6;3 5 7;4 9 2];

M15-by-5和平方米3 x3的,所以他们的互相关的大小(5 + 3)———(5 + 3),或7-by-7。落后,结果矩阵

C = ( c - - - - - - 2 , - - - - - - 2 c - - - - - - 2 , - - - - - - 1 c - - - - - - 2 , 0 c - - - - - - 2 , 1 c - - - - - - 2 , 2 c - - - - - - 2 , 3 c - - - - - - 2 , 4 c - - - - - - 1 , - - - - - - 2 c - - - - - - 1 , - - - - - - 1 c - - - - - - 1 , 0 c - - - - - - 1 , 1 c - - - - - - 1 , 2 c - - - - - - 1 , 3 c - - - - - - 1 , 4 c 0 , - - - - - - 2 c 0 , - - - - - - 1 c 0 , 0 c 0 , 1 c 0 , 2 c 0 , 3 c 0 , 4 c 1 , - - - - - - 2 c 1 , - - - - - - 1 c 1 , 0 c 1 , 1 c 1 , 2 c 1 , 3 c 1 , 4 c 2 , - - - - - - 2 c 2 , - - - - - - 1 c 2 , 0 c 2 , 1 c 2 , 2 c 2 , 3 c 2 , 4 c 3 , - - - - - - 2 c 3 , - - - - - - 1 c 3 , 0 c 3 , 1 c 3 , 2 c 3 , 3 c 3 , 4 c 4 , - - - - - - 2 c 4 , - - - - - - 1 c 4 , 0 c 4 , 1 c 4 , 2 c 4 , 3 c 4 , 4 )

作为一个例子,计算元素 c 0 , 2 (或C (3、5)在MATLAB®平方米3 x3)。两个矩阵所以他们排队(1,1)元素一致。此位置对应 c 0 , 0 。找到 c 0 , 2 ,滑动平方米两行。

现在平方米在矩阵吗M1 (1:3, 3:5)。计算中的元素产品和总和。下载188bet金宝搏答案应该是

1 × 8 + 7 × 3 + 1 3 × 4 + 8 × 1 + 1 4 × 5 + 2 0 × 9 + 1 5 × 6 + 1 6 × 7 + 2 2 × 2 = 5 8 5

(r2 c2) = (M2)大小;CC =总和(总和(M1 (0 + (1: r2), 2 + (1: c2)。*平方米))
CC = 585

验证结果使用xcorr2

D = xcorr2 (M1, M2);DD = D (0 + r2 2 + c2)
DD = 585

给定一个矩阵 X 的大小 × N 和一个矩阵 H 的大小 P × ,他们的二维互相关, C = X H 是一个矩阵的大小 ( + P - - - - - - 1 ) × ( N + - - - - - - 1 ) 与元素

C ( k , l ) = T r { X H k l __ } 1 k + P - - - - - - 1 , 1 l N + - - - - - - 1

T r 跟踪和匕首表示厄密共轭。的矩阵 X H k l 有大小 ( + 2 ( P - - - - - - 1 ) ) × ( N + 2 ( - - - - - - 1 ) ) 并给出了非零元素

X ~ ( , n ) = X ( - - - - - - P + 1 , n - - - - - - + 1 ) , P + P - - - - - - 1 , n N + - - - - - - 1

H ~ k l ( p , ) = H ( p - - - - - - k + 1 , - - - - - - l + 1 ) , k p P + k - - - - - - 1 , l + l - - - - - - 1

调用xcorr2相当于这个过程一般复杂的矩阵任意大小。

创建两个复杂的矩阵, X 的大小 7 × 2 2 H 的大小 6 × 1 7

X = randn (22 [7]) + 1 j * randn (22 [7]);H = randn (17 [6]) + 1 j * randn (17 [6]);[M, N] =大小(X);m = 1: m;n = 1: n;(P, Q) = (H)大小;p = 1: p;q = 1:问;

初始化 X C

Xt = 0 ([M + 2 * (p - 1) N + 2 * (q1)]);Xt (m + p - 1, n + q1) = X;C = 0 ([M + p - 1 N + q1]);

计算的元素 C 通过循环 k l 。重置 H k l 每一步的为零。节省时间和内存产品代替乘法和加法元素的痕迹。下载188bet金宝搏

k = 1: M + p - 1l = 1: N + q1 Hkl = 0 ([M + 2 * (p - 1) N + 2 * (q1)]);Hkl (p + k - 1, + l - 1) = H;C (k, l) =总和(总和(Xt。*连词(Hkl)));结束结束max (max (abs (C-xcorr2 H (X)))))
ans = 1.5139 e-14

答案是机器的输出精度xcorr2

利用互相关来找到适合在整个部分的图像。互相关使您能够找到两个信号的地区最相似。等二维信号,图像,使用xcorr2

黑白测试图像加载到工作区。显示用显示亮度图像

负载杜勒img = X;白色= max (max (img));显示亮度图像(img)轴图像colormap灰色的标题(“原始”)

图包含一个坐标轴对象。坐标轴对象与原有标题包含一个类型的对象的形象。

选择一个矩形区域的图像。显示部分的大图失踪。

x = 435;X = 535;szx = x: x;y = 62;Y = 182;szy = y: y;教派= img (szx szy);宣传= img;宣传(szx szy) =白;kumg =白*的(大小(img)); kumg(szx,szy) = Sect; subplot(1,2,1) imagesc(kimg) axis图像colormap灰色的标题(“图像”次要情节(1、2、2)显示亮度图像(kumg)轴图像colormap灰色的标题(“节”)

图包含2轴对象。坐标轴对象1标题图像包含一个类型的对象的形象。轴2与标题部分包含一个对象类型的形象。

使用xcorr2找到的小图像适合更大的图像。减去平均值,这样有大致相等数量的正面和负面的价值。

nimg = img-mean(意味着(img));nSec = nimg (szx szy);退休研究中心= xcorr2 (nimg nSec);

的最大互相关估计右下角的位置对应的部分。使用ind2sub将一维最大的位置转换为二维坐标。

[ssr,先期]= max (crr (:));[ij,霁]= ind2sub(大小(crr),先期);图绘制(crr(:))标题(互相关的)举行情节(先期苏维埃社会主义共和国,”或“)举行文本(snd * 1.05,苏维埃社会主义共和国,“最大”)

图包含一个坐标轴对象。坐标轴对象与标题互相关包含3线类型的对象,文本。一个或多个行显示的值只使用标记

较小的图像在大图像。较小的图像旋转遵守公约,MATLAB®使用来显示图像。画一个矩形。

img (ij: 1: ij-size(教派,1)+ 1,霁:1:ji-size(教派,2)+ 1)= rot90(教派,2);显示亮度图像(img)轴图像colormap灰色的标题(“重建”)举行情节([y y y y y], [x x x x x],“r”)举行

图包含一个坐标轴对象。坐标轴对象2标题重建包含对象类型的形象,线。

转变一个模板由一个已知量和恢复使用互相关的转变。

创建一个模板矩阵。在一个每组11行11列创建一个22-by-22矩阵和转变原来的模板由8行维度和6列维度。

的模板= 0.2 * (11);模板(6所)= 0.6;模板(说,6)= 0.6;offsetTemplate = 0.2 * 1 (22);抵消= 8 [6];offsetTemplate((1:尺寸(模板,1))+偏移量(1)(1:尺寸(模板,2))+偏移量(2))=模板;

绘制原始和转移模板。

显示亮度图像(offsetTemplate) colormap灰色的持有显示亮度图像(模板)轴平等的

图包含一个坐标轴对象。坐标轴对象包含2图像类型的对象。

交叉联系两个矩阵,找到最大互相关的绝对值。使用最大绝对值的位置来确定模板的转变。检查结果与已知的转变。

cc = xcorr2 (offsetTemplate、模板);[max_cc, imax] = max (abs (cc (:)));[ypeak, xpeak] = ind2sub(大小(cc), imax (1));corr_offset = [(ypeak-size(模板,1))(xpeak-size(模板,2)));isequal (corr_offset抵消)
ans =逻辑1

的转变从互相关获得等于已知模板行和列维度的转变。

这个例子需要并行计算工具箱™软件。指GPU计算的需求(并行计算工具箱)看看支持gpu。金宝app

转变一个模板由一个已知量和恢复使用互相关的转变。

创建一个模板矩阵。在一个每组11行11列创建一个22-by-22矩阵和转变原来的模板由8行维度和6列维度。

的模板= 0.2 * (11);模板(6所)= 0.6;模板(说,6)= 0.6;offsetTemplate = 0.2 * 1 (22);抵消= 8 [6];offsetTemplate((1:尺寸(模板,1))+偏移量(1)(1:尺寸(模板,2))+偏移量(2))=模板;

把原文件和模板转移矩阵使用GPUgpuArray对象。

模板= gpuArray(模板);offsetTemplate = gpuArray (offsetTemplate);

在GPU计算互相关。

cc = xcorr2 (offsetTemplate、模板);

返回结果使用MATLAB®工作空间收集。使用的最大绝对值互相关来确定转变,并比较结果与已知的转变。

cc =收集(cc);[max_cc, imax] = max (abs (cc (:)));[ypeak, xpeak] = ind2sub(大小(cc), imax (1));corr_offset = [(ypeak-size(模板,1))(xpeak-size(模板,2)));isequal (corr_offset抵消)
ans =逻辑1

输入参数

全部折叠

输入数组、矩阵或指定gpuArray对象。

看到运行在GPU MATLAB函数(并行计算工具箱)GPU计算的需求(并行计算工具箱)有关使用xcorr2gpuArray(并行计算工具箱)对象。

例子:罪(2 *π*(0:9)/ 10)*罪(2 *π* (0:13)/ 20)指定了一个二维正弦表面。

例子:gpuArray (sin(2 *π*(0:9)/ 10)*罪(2 *π* (0:13)/ 20))指定了一个二维正弦表面作为一个gpuArray对象。

数据类型:|
复数的支持:金宝app是的

输出参数

全部折叠

二维互相关或自相关矩阵,作为一个矩阵或返回gpuArray对象。

更多关于

全部折叠

二维互相关

的二维互相关——- - - - - -N矩阵,X和一个P——- - - - - -矩阵,H是一个矩阵,C的大小+P1,N+1。它的元素是由

C ( k , l ) = = 0 1 n = 0 N 1 X ( , n ) H ¯ ( k , n l ) , ( P 1 ) k 1 , ( 1 ) l N 1 ,

那里的酒吧了H表示复杂的共轭。

输出矩阵,C(k, l),有正面和负面的行和列索引。

  • 消极的行索引的行对应于一个向上的转变H

  • 消极的列索引的列对应于一个左方的改变H

  • 一个积极的行索引对应的行掉头向下H

  • 一个积极的列索引的列对应于一个右转H

将MATLAB的指标®形式,添加的大小H:元素C(k,l)对应于C (k + P、l + Q)在工作区中。

例如,考虑这样的二维互相关:

X = 1 (2、3);H = [1 2;3 4;5 6];% H 3×2C = xcorr2 (X, H)
C = 6 11 11 5 10 18 18 8 6 10 10 4 2 3 3 1

C (1)元素对应的输出C(1 - 3、1 - 2)=C在定义方程(2,1),它使用从零开始的索引。计算C (1)元素,转变H两排,左边一列。因此,在互相关和是唯一的产品X (1,1) * H (3 2) = 6。使用定义方程,您获得

C ( 2 , 1 ) = = 0 1 n = 0 2 X ( , n ) H ¯ ( + 2 , n + 1 ) = X ( 0 , 0 ) H ¯ ( 2 , 1 ) = 1 × 6 = 6 ,

与所有其他条款的总和等于零的两倍。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

之前介绍过的R2006a

另请参阅

||