我有以下两个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)
,如下图所示:
我从书Digital Image Processing, 3rd Edition得到了系数和图表,所以我相信它们是正确的。 星符号表示一维卷积(在行上或列上)。向下箭头表示一维的下采样(在行或列上)。
我的问题是h0
和h1
的滤波器系数总和大于1(确切地说大约为1.4或sqrt(2))。当然,如果我使用滤镜对任何图像进行卷积,图像将变得更亮。的确,这就是我得到的结果(预期结果在右边):
有人可以提出问题在这里吗?如果卷积滤波器系数总和大于1,为什么要工作
我有源代码,但它很长,所以我希望避免在这里发布。如果这是绝对必要的,我会稍后提出来。
修改
我正在做的是:
请注意,关键点不仅仅是要有一个可显示的子带分解图像 - 我必须能够从子带中完美地重建原始图像。因此,如果我缩放滤波后的图像以补偿我的分解滤镜,使图像更亮,那么我就必须这样做:
步骤2执行缩放。这就是@Benjamin的建议。问题是,步骤4变得必要,否则原始图像将无法正确重建。这种较长的方法将有效。但是,教科书明确指出在近似子带上没有缩放。当然,教科书可能是错的。然而,更有可能的是我误解了这一切的运作方式 - 这就是我问这个问题的原因。
编辑(2010/7/8)
我写信给这位书的作者作了确认。他说你做必须执行缩放,尽管书中有说法。
答案 0 :(得分:1)
如果您知道内核的总和,为什么不通过除以正确的因子来校正卷积后的亮度?
(例如,您可以使用内核[1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9]
获得3x3的平均值,但也可以使用[2, 2, 2, 2, 2, 2, 2, 2, 2]
获得18
的结果值...)
编辑:正如我的评论中所述,h1总和为0.看来h0和h1彼此反转/反转,因此某些h0系数可能有错误的符号。
EDIT2:请阅读评论。我知道这篇文章没有回答这个问题,我将其留在这里征求意见。