正交变换 与图像压缩
傅里叶变换
-
时域连续—>频域非周期
-
时域的非周期—>频域连续
图像的频率—>图像中灰度变化的剧烈程度的指标。
傅里叶频谱图上看到的亮点实际是图像上某一点与领域点差异的强弱,即梯度的大小。梯度大,亮度强。
快速傅里叶变换(FFT):
- 蝶形算法
码位倒序:将十进制转换成二进制,然后将二进制的序列倒序重排,再将颠倒顺序后的二进制转换成十进制。
编程实现FFT:
- 正变换:Y = fft2(X, m, n):X->的输入图像;m,n—>第一维到第二维规整到指定的长度;abs(Y) —>幅度谱;angle(Y)—>相位谱
- 逆变换:Y = ifft2(X,m , n)
I = imread('C:\Users\Administrator\Desktop\lena.jpg');
I1 = rgb2gray(I);
fcoef = fft2(double(I1));%进行快速傅里叶变换
tmp1 = log(1+abs(fcoef));%傅里叶变换的幅度值范围大到不合适在屏幕上显示,
%为了在屏幕上凸显出高低变化的连续性,可以用对数尺度来替换线性尺度,为了确保大于0,故+1处理
spectrum = fftshift(fcoef);%将频谱图移到图像的中心
tmp2 = log(1+abs(spectrum));
ifcoef = ifft2(fcoef);%逆变换,只有对复数矩阵进行逆变换,才可以恢复原图
figure %显示处理结果
subplot(2,2,1), imshow(I1), title('source image');
subplot(2,2,2), imshow(tmp1,[]), title('FFT image');
subplot(2,2,3), imshow(tmp2,[]), title('shift FFT image');
subplot(2,2,4), imshow(ifcoef,[]), title('IFFT image');
离散余弦变换(DCT)
:空间域的低通滤波器,在傅里叶级数展开式中,如果被展开的函数是实偶函数,则其傅里叶级数中只含有余弦项,再将其离散化,由此可导出离散余弦变换。