生成空间过滤的过滤器

时间:2012-11-28 18:56:00

标签: image-processing

我在维基百科上看到,如果我们需要对图像执行空间过滤,我们必须有一个过滤器,例如3x3,我在这里不明白的是我们如何选择过滤器的值?假设原始图像是灰度级,因此其强度从0到255(8位)。
另一个问题是,如果图像是9x9,我们如何将滤镜应用于该图像的边界像素?如果我们选择填充图像以使滤镜可以处理所有边界像素,那么新填充像素的值是多少?
非常感谢

1 个答案:

答案 0 :(得分:1)

过滤器的值取决于您希望通过过滤实现的目标。有很多过滤器设计来执行特定任务。例如,最简单的滤波器f = [ - 1 1 -1]种类通过对水平方向上的每个像素(x导数)执行第一度差分来执行图像导出,而f'在垂直(y导数)中执行相同的操作。为此目的选择值-1,1,-1。 3 * 3过滤器也是如此。通常,值的选择来自有限脉冲响应(FIR)和无限脉冲响应(IIR)滤波器的2D(双向)设计。

您应该记住,对寄宿生的过滤操作的价值并不那么准确。对于边界像素的滤波操作是通过称为边界插值的过程插入超出范围的像素。在OpenCV和类似的图像处理/计算机视觉库中,有方法可以做到这一点。例如,如下面的opencv

各种边框类型,图像边界用' |'

表示
  • BORDER_REPLICATE:aaaaaa | abcdefgh | hhhhhhh
  • BORDER_REFLECT:fedcba | abcdefgh | hgfedcb
  • BORDER_REFLECT_101:gfedcb | abcdefgh | gfedcba
  • BORDER_WRAP:cdefgh | abcdefgh | abcdefg
  • BORDER_CONSTANT:iiiiii | abcdefgh | iiiiiii与某些指定的' i'

因此根据你选择你填充边界像素。