本文旨在对图像处理中的小波分析做一个概要性的记录和介绍

1. 背景

傅里叶变换可以将信号表示为无限三角函数的累加形式,从而实现将信号从空间域到频率域的转换。然而这种转换丢失了信号时空域的信息(只知道频率及其幅值,但不知道该频率发生的空间位置,可以类比直方图),因此无法做局部分析。

短时傅里叶变换通过引入一个时间窗函数试图改进傅里叶的局部缺陷,但由于窗函数的尺寸是固定的,不能同时对信号高频和低频做精确分析。

小波变换基于可自动调节尺寸的窗函数(图像金字塔),在时域和频域均具有良好的局部化性能,被誉为“数学显微镜”。

小波变换在图像处理上可用于去噪、边缘提取(实质就是突出低频或高频),但最主要的应用在于图像压缩


2. 小波变换基本原理

傅里叶变换将信号分解为不同频率的三角函数之和的形式,小波变换则以尺度函数小波函数为基,将信号分解。

在这里,尺度是通过不断对图像做下2采样以建立图像金字塔得到的

尺度函数由低通滤波器构造,小波函数由高通滤波器实现。一次分解有一组小波函数组成(类似傅里叶变换中不同频率的三角函数),这组小波函数由一个母小波函数通过缩放和平移生成。

opencv 小波变换图像 小波变换提取图像特征_傅里叶变换

图2-1. 二维离散快速小波变换

如图2-1所示,h0为尺度函数,h1为小波函数,相应的操作为卷积。结果的f0为上一级的低频近似,f1为上一级水平方向的高频近似,f2为上一级垂直方向的高频近似,f3为上一级对角线方向的高频近似。

opencv 小波变换图像 小波变换提取图像特征_三角函数_02

图2-2. 二维离散小波变换结果

这里每次的分解都是从上级的低频近似开始,因为图像的大部分信息在低频区域;而小波包分解则对低频和高频都做分解。


3. 小波变换应用

去噪和边缘增强:通过对小波变换后的高频、低频做相应抑制或提升来实现。在这里其实空间域或傅里叶频域也可处理,优势不大。

图像压缩:由于图像主要信息在低频,因此可以对高频做稀疏化处理(甚至全设为0)实现压缩。傅里叶变换虽然也可提取不同频率,但因为丢失了空间信息因此无法做复原。


4. 代码

Matlab的可以参考晨宇思远博客的小波系列博文

C的可以参考http://eeweb.poly.edu/~onur/source.html,里面包含了小波及小波包分解重构的实现

opencv 小波变换图像 小波变换提取图像特征_小波变换_03

图4-1. 二级小波分解