本文章包含以下内容:
1.利用matlab工具箱实现傅里叶变换及逆变换。
2.利用matlab工具箱实现余弦变换及逆变换。
代码如下:
function U()
clear;
clc;
img = imread('cameraman.tif'); % 读取文件
figure('Name','傅里叶变换'); % 开一个标题为“傅里叶变换”的窗口
subplot(1,3,1);imshow(img);title('原图'); % 显示原图
DFT1=fft2(img); % 进行傅里叶变换。
% 显示图像频谱图,傅里叶变换结果为复数,所以取绝对值,值太大,取对数
subplot(1,3,2);imshow(log(abs(DFT1)+1),[0,10]);title('傅里叶变换结果');
% 显示逆变换图像
subplot(1,3,3);imshow(uint8(ifft2(DFT1)));title('逆变换图像');
figure('Name', '余弦变换'); % 开一个标题为“余弦变换”的窗口
subplot(1,3,1);imshow(img);title('原图'); % 显示原图
DCT1=dct2(img); % 进行余弦变换。
% 显示余弦变换结果
subplot(1,3,2);imshow(log(abs(DCT1)+1),[0,10]);title('余弦变换结果');
% 显示逆变换图像
subplot(1,3,3);imshow(uint8(idct2(DCT1)));title('逆变换图像');
end
结果示例:
傅里叶变换得到的频谱相当于图像的梯度,表现了图像上某一点与邻域点差异的强弱,体现了图像变化的剧烈程度。傅里叶变换将一个信号曲线分解成若干个正弦曲线,这些正弦的频率代表了原信号曲线的频率变化情况,如果将信号展开为偶信号,则为余弦变换。
傅里叶变换的图像零频部分在四周,高频部分在中心,而余弦变换图像具有很强的能量集中在频谱低频部分的特性,低频部分集中在左上角,幅值大,高频部分幅值小。