我知道有几种实现方式,但是大多数都使用matlab,而我想在OpenCV中使用C ++。
由于OpenCV中没有内置的小波变换实现, 2.x,我计划自己实现(另外,它将对我有好处)。
经过研究,我已经找到了有关第二代转换的原始文章,但是我我仍然对算法的确切工作方式有些困惑。
以Sweldens的论文[1]作为主要参考:提升方案:第二代小波的构造,我仍然对索引集的定义$ \ mathcal {K}(j)$:它们的大小是多少?他们是如何建造的? ...
因此,我的问题是:有没有人知道第二代小波变换的一些资源(论文,教程,幻灯片...),其形式类似于教程,或者一种更算法的视图(而不是数学的视图),这将有助于我设计自己的实现?
提前感谢您。
参考文献
我的主要参考文献是:
[1] Sweldens,W.(1998)。提升方案:第二代小波的构造。 SIAM数学分析杂志,29(2),511.
我也在学习:
[2]道伯吉斯,I。和Sweldens,W。( 1998)。分解小波转换为提升步骤。傅立叶分析与应用杂志,第4卷第3期,第247-269页。
[3] Kovacevic,J。和Sweldens,W。(2000年)。小波族在任意维度上递增顺序。图像处理,9(3),480–496。 doi:10.1109 / 83.826784
#1 楼
我终于买了《数学中的涟漪离散小波变换》 [1]的副本,我对这本书感到非常满意。作者用交替的观点(提升方案,滤波器组方法,多分辨率分析)解释了DWT,其中每种观点都有其自身的优势。此外,这本书是面向实现的,其中包括有关边界处理和matlab / C实现的章节。
我仍在寻找处理奇数信号的正确方法,但是Ripples为我提供了一个很好的开始。
[1]:http://www.control.auc.dk/~alc/ripples.html Arne Jensen和Anders la Cour-Harbo撰写的“数学中的涟漪离散小波变换”
评论
如果您链接到原始论文并加以说明,为什么会对它们感到困惑,这可能会有所帮助。同样,您说的是,有许多matlab(脚本语言)实现,您可以阅读这些实现以了解算法的工作原理。已经有C ++小波库。如果您要编写一些代码来进行锻炼,为什么不选择一种新的多尺度变换(例如,子束,山脊或Curvelet)以使社区受益呢?
@Emre:如前所述,OpenCV不包含小波变换,我也不希望添加依赖项。无论如何,我都会检查Blitzwave代码以了解事情的完成方式。现在,我只需要第二代。小波,但较新的工具(从Curvelet开始)是以后工作的一种选择。
@bjoernz:我在Sweldens论文的一小部分添加了一个精确的问题,这使我感到困惑。
您能参考一下您正在从中学习的文章/书吗?