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];
M1
5-by-5和平方米
3 x3的,所以他们的互相关的大小(5 + 3)———(5 + 3),或7-by-7。落后,结果矩阵
作为一个例子,计算元素
(或C (3、5)
在MATLAB®平方米
3 x3)。两个矩阵所以他们排队(1,1)
元素一致。此位置对应
。找到
,滑动平方米
两行。
现在平方米
在矩阵吗M1 (1:3, 3:5)
。计算中的元素产品和总和。下载188bet金宝搏答案应该是
(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
任意复杂的二维互相关矩阵
给定一个矩阵 的大小 和一个矩阵 的大小 ,他们的二维互相关, 是一个矩阵的大小 与元素
跟踪和匕首表示厄密共轭。的矩阵 和 有大小 并给出了非零元素
和
调用xcorr2
相当于这个过程一般复杂的矩阵任意大小。
创建两个复杂的矩阵, 的大小 和 的大小 。
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:问;
初始化 和 。
Xt = 0 ([M + 2 * (p - 1) N + 2 * (q1)]);Xt (m + p - 1, n + q1) = X;C = 0 ([M + p - 1 N + q1]);
计算的元素 通过循环 和 。重置 每一步的为零。节省时间和内存产品代替乘法和加法元素的痕迹。下载188bet金宝搏
为k = 1: M + p - 1为l = 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灰色的标题(“节”)
使用xcorr2
找到的小图像适合更大的图像。减去平均值,这样有大致相等数量的正面和负面的价值。
nimg = img-mean(意味着(img));nSec = nimg (szx szy);退休研究中心= xcorr2 (nimg nSec);
的最大互相关估计右下角的位置对应的部分。使用ind2sub
将一维最大的位置转换为二维坐标。
[ssr,先期]= max (crr (:));[ij,霁]= ind2sub(大小(crr),先期);图绘制(crr(:))标题(互相关的)举行在情节(先期苏维埃社会主义共和国,”或“)举行从文本(snd * 1.05,苏维埃社会主义共和国,“最大”)
较小的图像在大图像。较小的图像旋转遵守公约,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”)举行从
复苏与互相关模板转变
转变一个模板由一个已知量和恢复使用互相关的转变。
创建一个模板矩阵。在一个每组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灰色的持有在显示亮度图像(模板)轴平等的
交叉联系两个矩阵,找到最大互相关的绝对值。使用最大绝对值的位置来确定模板的转变。检查结果与已知的转变。
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计算的需求(并行计算工具箱)看看支持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
输入参数
一个
,b
- - - - - -输入数组
矩阵|gpuArray
对象
输入数组、矩阵或指定gpuArray
对象。
看到运行在GPU MATLAB函数(并行计算工具箱)和GPU计算的需求(并行计算工具箱)有关使用xcorr2
与gpuArray
(并行计算工具箱)对象。
例子:罪(2 *π*(0:9)/ 10)*罪(2 *π* (0:13)/ 20)
指定了一个二维正弦表面。
例子:gpuArray (sin(2 *π*(0:9)/ 10)*罪(2 *π* (0:13)/ 20))
指定了一个二维正弦表面作为一个
对象。gpuArray
数据类型:单
|双
复数的支持:金宝app是的
输出参数
c
——二维互相关或自相关矩阵
矩阵|gpuArray
对象
二维互相关或自相关矩阵,作为一个矩阵或返回gpuArray
对象。
更多关于
二维互相关
的二维互相关米——- - - - - -N矩阵,X和一个P——- - - - - -问矩阵,H是一个矩阵,C的大小米+P1,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 / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
之前介绍过的R2006a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。