2

我有以下两个 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》一书中得到了系数和图表,所以我相信它们是正确的。星号表示一维卷积行或列)。向下箭头表示一维(行或列)的下采样。

我的问题是滤波器系数h0h1总和大于 1(确切地说大约是 1.4 或 sqrt(2))。自然,如果我将任何图像与滤镜进行卷积,图像会变得更亮。确实,这就是我得到的(右边的预期结果):

实际的 预期的

有人可以提出这里的问题吗? 如果卷积滤波器系数总和大于 1,为什么它会起作用?

我有源代码,但它很长,所以我希望避免在这里发布它。如果绝对有必要,我稍后会提出来。

编辑

我正在做的是:

  1. 分解成子带
  2. 过滤其中一个子带
  3. 将子带重构为原始图像

请注意,重点不仅仅是要有一个可显示的子带分解图像——我还必须能够从子带中完美地重建原始图像。因此,如果我缩放过滤后的图像以补偿我的分解过滤器使图像更亮,这就是我必须做的:

  1. 分解成子带
  2. 将强度缩放应用于近似子带
  3. 过滤其中一个子带
  4. 将逆强度缩放应用于近似子带
  5. 将子带重构为原始图像

步骤 2 执行缩放。这就是@Benjamin 的建议。问题是步骤 4 变得必要,否则原始图像将无法正确重建。这种更长的方法起作用。但是,教科书明确表示不对近似子带进行缩放。当然,也有可能是教科书错了。然而,更有可能的是我误解了这一切的运作方式——这就是我问这个问题的原因。

编辑 (2010/7/8)

我写信给这本书的作者以确认。他说你必须执行缩放,尽管书中说了些什么。

4

1 回答 1

1

如果知道核的总和,为什么不通过除以正确的因子来校正卷积后的亮度呢?

(例如,您可以使用 kernel 取 3x3 平均值[1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9],但也可以[2, 2, 2, 2, 2, 2, 2, 2, 2]将结果值除以18...)

编辑:正如我的评论中所述,h1 总和为 0。看起来 h0 和 h1 是相反的/相反的,所以一些 h0 系数可能有错误的符号。

EDIT2:请阅读评论。我知道这篇文章没有回答这个问题,我把它留在这里以供评论。

于 2011-03-14T14:52:44.200 回答