问题标签 [cross-correlation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1187 浏览

image - 图像比较 结果图像配准。归一化互相关 Opencv

我需要检查一个图像注册过程的结果有多好。为此,我想到了在两个图像之间使用标准化互相关:过程的基础和结果。问题是我从未使用过互相关,我不知道它是否是更好的方法。

然后通过结果,我可以看到图像在哪里更不相似,并尝试改进图像这部分的配准。

我需要做一个二维互相关吗?那么我会得到一张不同的地图,对吧?

任何帮助/建议都会很有用

0 投票
1 回答
3829 浏览

iphone - 使用 Apple Accelerate Framework 中的 vDSP_conv 执行自相关

我需要执行数组(向量)的自相关,但我无法找到正确的方法。我相信我需要来自 Accelerate Framework 的方法“vDSP_conv”,但我不知道如何成功设置它。最让我失望的是需要 2 个输入。也许我有错误的功能,但我找不到对单个向量进行操作的功能。

文档可以在这里找到

从网站复制

vDSP_conv

对两个向量执行相关或卷积;单精度。

无效vDSP_conv(常量浮动__vDSP_signal[],vDSP_Stride __vDSP_signalStride,常量浮动__vDSP_filter[],vDSP_Stride __vDSP_strideFilter,浮动__vDSP_result[],vDSP_Stride __vDSP_strideResult,vDSP_Length __vDSP_lenResult,vDSP_Length __vDSP_lenFilter);

参数

__vDSP_signal

__vDSP_signalStride

__vDSP_filter

__vDSP_strideFilter

__vDSP_result

__vDSP_strideResult

__vDSP_lenResult

__vDSP_lenFilter

例如,假设您有一个float x = [1.0, 2.0, 3.0, 4.0, 5.0]. 我将如何看待它的自相关?

输出应该类似于float y = [5.0, 14.0, 26.0, 40.0, 55.0, 40.0, 26.0, 14.0, 5.0] //generated using Matlab's xcorr(x) function

0 投票
1 回答
676 浏览

matlab - Matlab中三点相关函数的矢量化计算?

我想通过向量元素的适当直方图(长度 system_size 的 num_samples 个样本)和相应的聚类函数 T2、T3 来计算向量样本的 2 点和 3 点相关函数 R2、R3。为简单起见,我正在考虑跨统一箱进行直方图。

什么是矢量化和/或加速以下代码的好方法?

我天真地认为 hist3(bins, bins...) 或 crosstab(bins, bins) 几乎可以做我想要的,即寻找向量元素的相关出现,但事实并非如此。


例子:

如果我在最外层循环中的输入是

那么量化的数据应该是

和 R2 应该是

0 投票
1 回答
245 浏览

python - 交叉相关的中点

我有两个数据集(x1,y1)(x2,y2),其中第一个数据集比第二个长,这意味着x1[0]<x2[0]x1[-1]>x2[0]。但是第一个数据集到每一边的长度一般是不一样的。

我使用 scipy 交叉关联

我的问题是我如何找到互相关的中点 =ycorr如果两个数据集具有相同的长度和mode='valid'. 所以中点不是 xcorr[len(xcorr)/2]。

可能很难理解我的问题,所以请询问是否有不清楚的地方。

编辑

要找到中点,我们必须查看端点的长度。x1所以比最后要长多少x2

中点由下式给出

0 投票
2 回答
3518 浏览

matlab - Matlab中使用fft和相同长度输出的两个向量的线性卷积和互相关

我正在实现一个算法,我需要计算两个一维向量之间的线性卷积和互相关ab使用 FFT。如果aism的长度和 的长度bn,那么得到的卷积的总长度将为m + n - 1

但是,该算法要求卷积的输出与输入的长度相同。由于m = n,输入向量的长度相同。

在 Matlab 中,假设两个向量都被零填充到 length m + n - 1,卷积计算为:

ifft(fft(a).*fft(b))

或者,两个向量之间的互相关计算如下:

fftshift(ifft(fft(a).*conj(fft(b))))

输出是长度m + n - 1。我需要对向量进行零填充,以确保在使用 FFT 时不会发生循环卷积。

但是,我希望输出长度与输入长度相同。一个相关的问题(也在 stackoverflow 上)显示了如何修剪两个图像的相关性。

如何修剪一维输出向量,使其与输入向量的长度相同?

0 投票
1 回答
90 浏览

cross-correlation - 销售具有相关价格的产品

我有需要解决的买家/卖家问题:

我,作为买家,想买(比方说)50 件商品。有几个卖家有我需要的所有(或至少一些)产品库存。我可以向他们询问不同产品的价格并选择最便宜的选项。到目前为止,一切都很好。问题如下:如果我组合不同的产品,产品价格是相关的:

卖家 A 可以以 400 美元的价格向我出售产品 A,以 300 美元的价格向我出售产品 B,但两者加起来要 500 美元。

不知道这个相关函数是怎么构建的,只能求个结果。我什至可以要求零件:

我可以向卖家 1 要求产品 A 的 10 件和产品 B 的 5 件,以及卖家 2 的产品 B 的 5 件和 10 件。

我不能要求每一种可能的组合,因为 50 种不同数量的不同商品有 10 个卖家要求每一种可能的组合(蛮力可能性)将持续到普遍结束。

是否有既定的最佳实践,如某种拍卖,在可接受的时间内达到某种帕累托最优?或者有人可以将我推向解决此类问题的方向,以便我可以开始研究自己(科学论文等)

0 投票
2 回答
198 浏览

r - 带查找表的 R

我有两个包含这种格式的时间序列的文件:

在 R 中,对于任何标签(例如 Stock-x),我想从两个文件中获取相关数组并为它们计算互相关(ccf)。我怎么能做到这一点?

注意:如果更容易,我可以更改文件格式。

更新:

我用这个从文件读入data.frames:

我将如何访问具有标签名称(例如“Stock-5”)的特定行?

0 投票
1 回答
689 浏览

computer-vision - 计算机视觉与亮度空间恒定增加的互相关

如果我按照附加公式中的描述获取两个图像之间的相关性:


相关性


摘自以下在线计算机视觉教科书:Szelski第 386 页。

此功能似乎永远不会可靠,因为如果您的一张图像比另一张更亮,则相关性将高于图像相同的情况。例如,看看印在白板上的这些例子:

完美的一对

在此处输入图像描述

如您所见,较亮的图像与第一张图像的相关性比第一张图像的相同副本更好。我究竟做错了什么?

0 投票
2 回答
397 浏览

matlab - 使用matlab高度相关的位置

我有一个或多或少重复的信号(从一个到另一个不完全相同,请参见左边的图)。如果我使用自相关,我会得到一些最大值(右图),但它并没有告诉我在哪里(哪个样本数)相关性很高。它给了我滞后,但我丢失了位置信息,即信号发生的原始数据中的样本数。例如在自动校正中。图中,样本 500 处的第二个峰值应对应于数据图中样本 750 处的信号。我可以通过使用一个在数据轨迹上移动并找到最大值的小窗口来做到这一点,但这需要太多时间。在matlab中有没有更快的方法来做到这一点?谢谢。 在此处输入图像描述

0 投票
2 回答
8777 浏览

python - 如何使用 scipy 执行具有亚像素精度的图像互相关

下图显示了两个相同半径的圆,用抗锯齿渲染,只是左边的圆水平移动了半个像素(注意圆的水平中心在左边一个像素的中间,在右边的像素边界处)。

如果我执行互相关,我可以在相关数组上取最大值的位置,然后计算移位。但由于像素位置总是整数,我的问题是:

“如何使用 Numpy/Scipy 中的互相关获得两个图像之间的子像素(浮点)偏移?”

在我的脚本中,我使用了scipy.signal.correlate2dor scipy.ndimage.filters.correlate,它们似乎产生了相同的结果。

这里的圆圈只是示例,但我的特定领域特征往往具有亚像素移位,而目前仅获得整数移位给出的结果不太好......

任何帮助都感激不尽!

在此处输入图像描述