1. 目的
使用MATLAB对图像进行频域变换操作
2. 原理
1.二维离散傅里叶变换及反变换
图像尺寸为M×N的函数f(x,y)的DFT为:
u=0,1,2,...,M-1, v=0,1,2,...,N-1
给出F(u,v),可通过反DFT得到f(x,y):
x=0,1,2,...,M-1, y=0,1,2,...,N-1
注:u和v是频率变量,x和y是空间域图像变量
F(0,0)表示:
2.二维DCT变换:
f(i,j)是原始的信号,F(u.v)是变换后的系数,N是原始图像的点数,此处为N*N,矩形时可改为N*M。
例如:(假如为N*M矩阵)F(0,0)=ΣΣf(i,j) /根号(N*M)
反变换:
3. 二维haar小波
从水平和竖直两个方向进行高通和低通滤波,图a表示原图,图b表示经过一级小波变换的结果,h1 表示水平反向的细节,v1 表示竖直方向的细节,c1表示对角线方向的细节,b表示下2采样的图像。图c中表示继续进行Haar小波变换。
4.Matlab中相关函数:
快速傅里叶变换fft2(I),其中I为输入灰度图像
平移零频至图像中间fftshift(I)
傅里叶反变换Ifft2(I)
离散余弦变换dct2(I)
反离散余弦变换idct2(I)
haar小波变换[cA,cH,cV,cD]=dwt2(I,'haar'),其中cA,cH,cV,cD分别为低频分量,水平分量,垂直分量,斜线分量
3. 过程记录
1.傅里叶变换
读入灰度图像并显示如下:
图1 原始灰度图像
对图像进行傅里叶变换:
结果如下:
图2 傅里叶变换后频谱
利用傅里叶变换进行低通滤波:
频域滤波函数:
截至频率为freq的理想低通滤波器函数:
低通滤波实现如下:
结果为:
图3 噪声图像及对应频谱
图4 截止频率为20低通滤波后图像及对应频谱
图5 截止频率为40低通滤波后图像及对应频谱
加强傅里叶变化后某点的频率进行比较:
结果如下:
图6 加强某点频率后的结果
从图中可以看出处理后的图像出现了细条纹
2.DCT变换
读入灰度图像,对图像进行DCT变换
结果如下:
图7 DCT变换
对图像进行高通滤波
结果如下:
图8 高通滤波
3.DWT变换
读入灰度图进行小波变换
结果:
图9 原图
图10 DWT变换后四个分量图
继续进行分解:
结果如下:
图11 第二层
4.分析
1.傅里叶变换中,需要做频移处理,使得低频在中间,高频在四周,图像中低频占大部分而高频是少部分,低频能量累积多,所有图像呈现为中间亮。傅里叶变换也可以用于滤波处理,去除噪声。某一部分的频率增大时,可能会出现栅格。
2.DCT变换后左上角低频能量集中,比较明亮。利用DCT进行高通滤波可以通过抑制变换后的低频部分从而实现了保留高频部分,对边缘部分进行提取。
3.DWT变换后可以得到四种分量,有低频信息和高频信息,低频信息存储轮廓信息,高频信息存储细节信息,实验进行了两层分解,第一层分解和得到的图像为原图的1/4,第二层为原图的1/16