小波
最近要用到小波,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 实现