小波

小波

最近要用到小波,matlab中有现成的小波函数,但opencv中没有,很好奇opencv怎么没把这么重要的工具包含进去。

网上找了资料很多,但太杂,重复太多。

终于发现了一篇系统介绍小波的,O(∩_∩)O哈哈~  分享之:http://ivm.sjtu.edu.cn/files/wavelet/%E7%AC%AC3%E7%AB%A0wavelet_original.pdf

http://media.cs.tsinghua.edu.cn/~ahz/digitalimageprocess/chapter12/chapt12_ahz.htm#d1 这是清华的一个课件很好!!!同事推荐的

此外:二维离散小波变换(Mallat快速算法) matlab

 

个人理解:

1. 小波是指满足某些条件的一个函数簇,已经有人提出了一些,但是人们还在构造新的小波函数。

matlab 中实现的:

 Available wavelet names 'wname' are:
%   Daubechies: 'db1' or 'haar', 'db2', ... ,'db45'
%   Coiflets  : 'coif1', ... ,  'coif5'
%   Symlets   : 'sym2' , ... ,  'sym8', ... ,'sym45'
%   Discrete Meyer wavelet: 'dmey'
%   Biorthogonal:
%       'bior1.1', 'bior1.3' , 'bior1.5'
%       'bior2.2', 'bior2.4' , 'bior2.6', 'bior2.8'
%       'bior3.1', 'bior3.3' , 'bior3.5', 'bior3.7'
%       'bior3.9', 'bior4.4' , 'bior5.5', 'bior6.8'.
%   Reverse Biorthogonal: 
%       'rbio1.1', 'rbio1.3' , 'rbio1.5'
%       'rbio2.2', 'rbio2.4' , 'rbio2.6', 'rbio2.8'
%       'rbio3.1', 'rbio3.3' , 'rbio3.5', 'rbio3.7'
%       'rbio3.9', 'rbio4.4' , 'rbio5.5', 'rbio6.8'.

 

详见:wfilters函数

 

2. 小波变换:也可以理解为小波分解。因为本人做的是图像处理领域的工作,就针对图像说一下。小波分解可将一幅图像分成四部分:

LL:水平低频,垂直低频

LH:水平低频,垂直高频

HL:水平高频,垂直低频

HH:水平高频,垂直高频

不理解的同学,可以看一下:二维离散小波变换(Mallat快速算法) matlab 中的多尺度分解图。或者小波文档中的p27/66中的图像。

 

3. 程序实现小波变换和逆变换: 
现在要用的一般是Mallat的方法——用一个低通滤波器,一个高通滤波实现,博文二维离散小波变换(Mallat快速算法) matlab中显示了其过程,并提供了matlab程序。

 

之后自己写的小波变换:小波变换 C++ opencv 实现

posted @ 2015-06-19 19:50  菜鸡一枚  阅读(1424)  评论(0编辑  收藏  举报