4

我一直在寻找 OpenCV 的源代码来理解分数计算。您可能已经注意到,该库可以在具有置信度分数的图像中找到模板。cvMatchTemplate 函数给出模板在图像中的概率和位置。

由于 DFT 很慢,我决定使用 FFTW 库进行相位相关。我得到图像,扩展为 2 的幂的大小,然后对模板执行相同操作,首先计算两者的 FFT,将两个数组相乘,计算逆 FFT,最后对结果进行归一化。

如果我在位图上显示这个结果,它会清楚地显示模板的位置,但是,我很难计算相关分数。我尝试在调试器下逐行运行 cvMatchTemplate 方法,但由于库使用 DFT 和任意图像大小,它没有帮助。该方法中使用的所有表(sum、sqsum 等)都是为相应的任意大小创建的,FFT 使用 2 的幂。

我将不胜感激有关如何根据相位相关结果计算分数的任何信息。有许多资料描述了“拿这个,拿那个,把它们相乘,你看到图像上的白点,是的,你找到了”的方式。我需要一个分数,就像 cvMatchTemplate 一样。

我恳请您将我指向一个站点或包含该计算逻辑的论文或一本书。源代码将是完美的,但无论如何我对此没有希望。

4

2 回答 2

2

1) FFTW 可以使用非 2 次幂大小的数组。

2)您可能要搜索/研究的主题领域是 FFT 互相关定理:

“两个函数互相关的傅里​​叶变换等效于单个傅里叶变换的乘积,其中一个是复共轭的”

于 2011-01-09T01:34:32.427 回答
1

首先,确保您没有“将图像扩展为 2 的幂”。我确定您不是这个意思,但无论如何使用 FFTW,您都可以计算出任意大小的 FT。

我不明白您使用 OpenCV 做什么。如果您有 FFT,那么很容易自己计算归一化的互功率谱,也就是“相位相关公式”。

获得最大尺寸的图像 FFT,不要忘记窗口。计算 CPS。一旦你有相关表面寻找峰值。

除了 FT,我不知道 OpenCV 为相位相关提供了什么,但你想要的论文是

G.A. Thomas, Television Motion Measurement for DATV and Other Applications, 1987, BBC Research Department.

于 2011-01-09T00:38:05.210 回答