Image processing 空间滤波的生成滤波器

Image processing 空间滤波的生成滤波器,image-processing,Image Processing,我在维基百科上读到,如果我们需要对图像执行空间过滤,我们必须有一个过滤器,例如3x3,我不明白的是我们如何选择过滤器的值?假设原始图像是灰度的,因此其强度从0到255(8位)。 另一个问题是,如果图像是9x9,我们如何将过滤器应用于该图像的边界像素?如果我们选择填充图像,使过滤器可以处理所有边界像素,那么新填充像素的值是多少? 非常感谢过滤器的值取决于您希望通过过滤实现的目标。有许多过滤器设计用于执行特定任务。例如,最简单的滤波器f=[-1-1]通过在水平方向(x-导数)上对每个像素执行一次差分

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

非常感谢

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

您应该记住,boarders上的filter操作的值没有那么精确。boarder像素的过滤操作是通过一种称为boarder插值的过程对超出范围的像素进行插值。在OpenCV和类似的图像处理/计算机视觉库中,有一些方法可以做到这一点。例如,在opencv中如下所示

各种边界类型,图像边界用“|”表示

  • 边界复制:aaaaa | abcdefgh | hhhhhh
  • 边界反映:fedcba | abcdefgh | hgfedcb
  • 边界反映101:gfedcb | abcdefgh | gfedcba
  • 边框包装:cdefgh | abcdefgh | abcdefg
  • 边界常数:iiiiii | abcdefgh | iiiiiii带有一些指定的“i”
因此,根据您的选择,您可以填充边界像素