使用 DFT 的亚像素图像移位如何真正起作用?

信息处理 图像处理 自由度 插值
2022-01-04 06:45:18

我正在尝试为涉及生成亚像素移位图像的应用程序评估几种图像插值方法的质量。我想我可以将使用所有这些插值变体的亚像素移位的结果与一些完美移位的图像进行比较,但可能无法获得它(那么插值需要什么?)。

我正在考虑在频域中使用 DFT + 移位,但与显式插值图像(使用双线性、双三次等)相比,我不确定它的实际工作原理。我确信它不可能生成完美转换的图像,但我不能把手指放在它上面。使用 DFT 进行亚像素移位是否等同于应用插值,如果是,是哪一个?使用这种方法获得的图像中像素值的偏差是多少?谢谢!

编辑: 在考虑了这个问题之后,我认为由于 FFT 是原始函数在谐波(正弦函数)方面的近似值(更是如此 DFT),因此它相当于某种三角插值。我记得离散数据的“傅立叶级数插值”公式是三角插值,但不确定它是否已连接。

2个回答

为了了解 DFT 如何让您移动图像,您需要几个关键的见解。

首先,傅立叶定理:首先看连续(即模拟)情况可能更容易。想象一下你有一些函数,称之为 g(t)。为简单起见,假设 g(t) 是模拟音频记录,因此它是一个一维函数,它是连续的,并将瞬时压力表示为时间的函数。

现在,g(t) 是我们可以表示我们的录音的一种方式。另一个是 G(f)。G(f) 是 g(t) 的傅里叶变换。因此,G(f) == FT(g(t))。G(f) 与 g(t) 具有所有相同的信息,但它在频域而不是时域中表示该信息。关于傅立叶变换有一些挑剔的细节,我不会提及。

您可以将 G(f) 视为包含在 g(t) 中的“频率分布”。因此,如果 g(t) 是一个正弦波(即纯音),那么 G(f) 将在任何地方都为零,除了该音的频率。提到 G(f) 通常是一个复函数,这可能是一个好点——也就是说,它返回复数,可以认为它具有实部和虚部或幅度和相位。

这里有一个小题外话:由于 g(t) 是连续的(在域和范围内),因此 G(f) 也是连续的。那么,除了音调频率之外,G(f) 怎么能在所有地方都为零呢?好吧,FT(sin(wt)) =δ(w). 在哪里δ狄拉克三角函数

好的,所以现在我们已经有了连续的 FT。

这是第二个见解:离散傅立叶变换对傅立叶变换就像采样信号对模拟信号一样。在这种情况下,“离散”是指函数域(时间或频率)的量化,而不是它的范围。(从声卡获得的采样数字信号在域和范围内都进行了量化。)

您从声卡获得的数字字节流包含来自麦克风的原始连续(模拟)信号的“样本”。如果我们对采样的 g(t) 进行 DFT,我们仍然会得到 G(f)。请记住,G(f) 只是表示 g(t) 中包含的信息的另一种方式。如果我们遵循奈奎斯特定理,采样信号 g(t) 包含原始连续信号的所有“智能”,因此我们的离散 G(f) 必须包含原始连续信号的所有信息。顺便说一句,G(f) 仍然是一个复函数。

这就是亚像素移位的魔力所在,但在这种情况下,我要写的是及时将音频信号移位小于一个样本,因为它是同一件事。

还记得 G(f) 是一个复函数吗?它需要很复杂才能表示在 t=0 时不为零的频率。请记住,sin(0)=0,所以 sin(2*0)=0,等等。但是,如果我们开始通过一个音调循环录制四分之一的方式怎么办?这就是 G(f) 的相位部分的来源。在这种情况下,相位将是 90 度或 pi/2 弧度,具体取决于您对表示四分之一周期的偏好。所以 G(tone_frequency) = 0 + i 或eiπ2.

这意味着我们可以通过修改 G(t) 的相位来及时改变我们的录音(我们选择的任何数量,包括采样时间的一小部分)。实际上,这种说法可能有点太随意了。对于未量化的采样信号,可以任意调整相位(这是我之前区分域量化和范围量化的部分原因)。但是,对于量化的采样信号(例如,我们的音频字节流),量化步长(即位数)决定了我们可以调整相位的分辨率。当我们逆傅立叶变换 G(f)(或 DIFT,对于这个采样信号)时,新的样本集 g'(t) = DIFT(G(F)) 将在时间上移动我们选择的数量。

将其应用于您的像素仅意味着使用 2 维 FT 而不是此处讨论的 1 维 FT。

DFT/FFT,加上频域中添加的零填充,然后是更长的 IDFT/IFFT,返回插值点。这些点将使用周期性 Sinc 内核进行插值,这是对严格限制在原始采样率一半以下的原始数据的完美插值。但是,数据将被视为圆形包裹,这可能会在某些图像的边缘产生奇怪的结果。因此,您可能希望在插值之前使用漂亮的填充物或框架颜色填充原始源的边缘。

如果您通过 2X 上采样(零填充 FFT 以使 IFFT 之前的长度加倍),那么您可以使用插值点进行半像素移位。3X 用于第三个像素移位等。对于移位,您可以丢弃原始点以及任何多余的插值点以获得所需的大小。