MATLAB实现图像变换

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

相关推荐
EasonZzzzzzz5 分钟前
计算机视觉——相机标定
人工智能·数码相机·计算机视觉
春末的南方城市31 分钟前
港科大&快手提出统一上下文视频编辑 UNIC,各种视频编辑任务一网打尽,还可进行多项任务组合!
人工智能·计算机视觉·stable diffusion·aigc·transformer
jackson凌1 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
huangyuchi.2 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
且慢.5893 小时前
Python_day47
python·深度学习·计算机视觉
大写-凌祁3 小时前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
Unpredictable2223 小时前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
jndingxin3 小时前
OpenCV CUDA模块图像处理------创建一个模板匹配(Template Matching)对象函数createTemplateMatching()
图像处理·人工智能·opencv
傍晚冰川4 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习
Love__Tay5 小时前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融