我不确定这有多实用,但是可以使用快速傅立叶变换来旋转光栅图像吗?

老实说,我从来没有真正理解过FFT,但是我看到它被用于例如JPEG。我要说的是,假装我可以获取一些FFT库,下一步该怎么做?

此外,我还读到存在这种Gibbs现象,它会导致振铃失真。这里也是一个问题吗?

评论

“我从未真正理解过FFT,但我看到它已用于JPEG”。我不确定这是什么意思,但是FWIW,JPEG不使用FFT。相反,它使用不同的变换,即离散余弦变换(DCT)。 DCT相对于FFT具有一些优势,尽管它们都无限重复,但DCT在每次重复时都会反射,因此暗示了更好的连续性。

@SimonF您看,我什至以为DCT是FFT的特例。感谢您的澄清!

#1 楼

傅立叶变换不会帮您旋转。您只需要旋转傅立叶系数矩阵,而不是旋转原始图像即可。

例如,考虑一个由完美正弦波沿着x轴的波矢组成的图像$(k,0)$。 (波矢是沿着$ x $和$ y $轴的空间频率)。傅立叶变换将全部为黑色,在位置$(k,0)$处有一个白色像素。

将图像旋转角度$ \ theta $时,您将获得沿着倾斜轴的完美正弦波。如果绘制图表并进行一些三角测量,可以看到新的波矢将为$(k \ cos \ theta,k \ sin \ theta)$。 (这有助于该部分知道频率$ k $在该周期内为1。)

因此,旋转结果的傅立叶变换将全为黑色,位置处只有一个白色像素$(k \ cos \ theta,k \ sin \ theta)$。但这就是将原始波的傅立叶变换旋转$ \ theta $所得到的。

至于吉布斯现象,在对图像进行下采样或压缩时会出现问题。频率量化(如JPEG)。但是,仅对图像进行傅立叶变换不会引入任何吉布斯振铃。如果正确完成,则傅立叶变换是无损且可逆的:它代表原始图像中的所有信息。

#2 楼

对的,这是可能的。请记住,空间的偏移等效于频率的线性相位乘法。旋转可以通过在一个方向上进行剪切操作,然后在垂直方向上进行剪切操作,再在原始方向上进行最终剪切来完成(Alan Paeth,``一种用于通用栅格旋转的快速算法'',图形界面学报) 1986年,Larkin等人展示了如何理解这一概念,并将其转化为一维FFT与线性相位项相乘,另一组垂直一维FFT与线性相位相乘,最后一组一维FFT等。 ,沿原始方向旋转(“快速傅立叶方法使采样图像准确旋转”,Optic Communications,1997年)。或者,您当然可以旋转傅立叶矩阵以完成旋转。但是,您必须请记住,旋转必须围绕DFT空间中的原点进行,因为DFT是周期性的,因此您必须将阵列循环移动到中心,然后围绕它旋转,然后再移回,即使这样也会引起图像旋转阿鲁和原点(左上角),考虑到DFT现在将图像本身视为周期性的事实。