利用Matlab进行图像变换(傅里叶变换、余弦变换)

本文章包含以下内容:

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

结果示例:

利用Matlab进行图像变换(傅里叶变换、余弦变换)_第1张图片

利用Matlab进行图像变换(傅里叶变换、余弦变换)_第2张图片

        傅里叶变换得到的频谱相当于图像的梯度,表现了图像上某一点与邻域点差异的强弱,体现了图像变化的剧烈程度。傅里叶变换将一个信号曲线分解成若干个正弦曲线,这些正弦的频率代表了原信号曲线的频率变化情况,如果将信号展开为偶信号,则为余弦变换。

        傅里叶变换的图像零频部分在四周,高频部分在中心,而余弦变换图像具有很强的能量集中在频谱低频部分的特性,低频部分集中在左上角,幅值大,高频部分幅值小。

你可能感兴趣的:(matlab,图像处理,算法)