使用Daubechies滤波器进行子带分解
我有以下两个8抽头过滤器:
h0 ['-0.010597', '0.032883', '0.030841', '-0.187035', '-0.027984', '0.630881', '0.714847', '0.230378']
h1 ['-0.230378', '0.714847', '-0.630881', '-0.027984', '0.187035', '0.030841', '-0.032883', '-0.010597']
这是他们在图表上:
我用它来获得近似值(图像的较低子带)。这是下图中的a(m,n)
:
我从“数字图像处理”第3版这本书中得到了系数和图表,所以我相信它们是正确的。星号表示一维卷积(在行上或列上)。向下箭头表示一维中的下采样(在行或列上)。
我的问题是h0
和h1
的滤波器系数总和大于1(确切地说大约为1.4或sqrt(2))。当然,如果我使用滤镜对任何图像进行卷积,图像将变得更亮。确实,这就是我得到的(预期结果在右边):
有人可以提出问题在这里吗?如果卷积滤波器系数总和大于1,为什么它可以工作?
我有源代码,但它很长,所以我希望避免在这里发布。如果这是绝对必要的,我会稍后提出来。
编辑
我在做的是:
分解成子带
过滤其中一个子带
将子带重构为原始图像
请注意,关键点不仅仅是要有一个可显示的子带分解图像 - 我必须能够完美地从子带重建原始图像。因此,如果我缩放滤波后的图像以补偿我的分解滤镜,使图像更亮,那么我就必须这样做:
分解成子带
将强度缩放应用于近似子带
过滤其中一个子带
将反向强度缩放应用于近似子带
将子带重构为原始图像
步骤2执行缩放。这就是@Benjamin的建议。问题是,步骤4变得必要,否则原始图像将无法正确重建。这个更长的方法将起作用。然而,教科书明确指出不对近似子带执行缩放。当然,教科书可能是错的。然而,更有可能的是,我误解了这一切的运作方式 - 这就是我问这个问题的原因。
编辑(2010/7/8)
我写信给这本书的作者作了确认。他说,尽管书中说的是什么,但你必须进行缩放。
没有找到相关结果
已邀请:
1 个回复
公藕
取3x3平均值,但也可以使用
取平均值,然后将结果值除以
......) 编辑:正如我的评论中所述,h1总和为0.看来h0和h1彼此反转/反转,因此一些h0系数可能有错误的符号。 EDIT2:请阅读评论。我知道这篇文章没有回答这个问题,我将其留在这里征求意见。