250 likes | 517 Views
图像变换. 傅立叶变换 图像 FFT DCT 变换. 对自然界的深刻研究是数学最富饶的源泉。. Fourier(1768-1830). Stephen Hawking. 函数的傅立叶变换. 函数 f ( x )的一维傅立叶变换定义为:. 其逆变换定义为:. 傅立叶变换的幅值和相角. f ( t )的傅立叶变换结果常常是虚数,可用复数形式表示为:. 则其幅值为:. 其相位为:. 相 位. 幅 值. 幅值和相角的应用. f ( t )的能量谱 :. 用幅值和相位来表示傅立叶变换 :. 离散傅立叶变换. 正变换:. 逆变换:. 二维傅立叶变换.
E N D
图像变换 傅立叶变换 图像FFT DCT变换
对自然界的深刻研究是数学最富饶的源泉。 Fourier(1768-1830)
函数的傅立叶变换 • 函数f(x)的一维傅立叶变换定义为: • 其逆变换定义为:
傅立叶变换的幅值和相角 • f(t)的傅立叶变换结果常常是虚数,可用复数形式表示为: • 则其幅值为: • 其相位为:
相 位 幅 值 幅值和相角的应用 • f(t)的能量谱: • 用幅值和相位来表示傅立叶变换:
离散傅立叶变换 • 正变换: • 逆变换:
二维傅立叶变换 • 对于二维信号,二维傅立叶变换定义为:
图象的傅立叶变换例子(一) 原图像 幅度谱 相位谱
图象的傅立叶变换例子(二) 原图像 幅度谱 相位谱
快速傅立叶变换(FFT) • 加快离散傅立叶变换的速度 • 计算中有很多重复的内容 • Cooley和tukey于1965年提出: • 将原始的N点序列依次分解为一系列短序列; • 求出这些短序列的离散傅立叶变换; • 组合出所需的变换值; • 计算量(乘除法):
FFT原理 • 令: • 则DFT为: • 假定N为2的正整数幂:
则: • 当K>M-1时: • 欧拉公式: • 当theta=pi时:
则: • 意义:对一个长度为N的序列进行傅立叶变换可以通过将其分成两半计算,对第一部分的计算需要通过计算两个长度为N/2长度序列的傅立叶变换式进行,然后利用这两个长度为N/2的序列可以得到第二部分的值。
利用matlab实现FFT • t = 0:0.001:0.6; • x = sin(2*pi*50*t)+sin(2*pi*120*t); • y = x + 2*randn(size(t)); • Figure; plot(1000*t(1:50),y(1:50)) • title('Signal Corrupted with Zero-Mean Random Noise') • xlabel('time (milliseconds)')
利用matlab实现FFT • Y = fft(y,512); • Pyy = Y.* conj(Y) / 512; • f = 1000*(0:256)/512; • figure; plot(f,Pyy(1:257)) • title('Frequency content of y') • xlabel('frequency (Hz)')
图像FFT的函数 • fft2(X) = fft(fft(X).').' • fftshift(F) • ifft2(F)
对图像进行FFT • 产生图像: • f = zeros(30,30); • f(5:24,13:17) = 1; • figure; • imshow(f,'InitialMagnification','fit')
对图像进行FFT • 计算图像的FFT: • f = zeros(30,30); • f(5:24,13:17) = 1; • figure; • imshow(f,'InitialMagnification','fit')
对图像进行FFT • 计算图像的细化FFT(填料): • F = fft2(f,256,256); • figure; • imshow(log(abs(F)),[-1 5]); • colormap(jet); colorbar
离散余弦变换 • DCT是实值变换 • 广泛应用于语音和图像的压缩