任何人都可以提供关于边缘保持平滑如何工作的平易近人的解释吗?

时间:2011-07-18 20:16:34

标签: algorithm image language-agnostic

边缘如何保持平稳工作?这是一个图像滤镜,可以模糊图像而不会弄乱边缘。

我在Google上的搜索只发现了讨论数学的学术论文,这些都超出了我的理解范围。

你能提供一些伪代码或一个简单解释的链接吗?

3 个答案:

答案 0 :(得分:3)

首先,这样做有很多数学,所以如果你不理解你找到的数学方程式,我会试着用简单的术语来解释它:

Smoothing通常是通过对相邻像素进行某种加权平均来完成的。

因为这基本上是数学,而图片基本上是3D矩阵,所以你可以通过基本矩阵数学处理有效地实现smoothing

现在要获得edge detection,您只需要找到相邻像素之间的差异(或者如果它是宽边,则可以设置最大宽度),这也只是矩阵的gradient 。 (多维导数)。

所以,即使你天真地做,也可以使用渐变作为加权像素颜色平均值的权重因子。

我假设你会发现大多数数学方程在某种程度上使用梯度,但只是使它更有效(单个数学公式与许多循环相对)

答案 1 :(得分:0)

如果你采用一个非常简单的2D平滑滤波器(如盒子或高斯内核),它将在所有方向上均匀地平滑(对于高斯比盒子更真实。)基本思想是以某种方式使滤波器平行于平滑边缘(或沿着它),但尽可能不垂直于它(或跨越它)。

但是,您不知道先验图像中任何给定点的边缘方向,因此您必须弄明白这一点。大多数边缘保持平滑最终做的是计算边缘局部的方向,然后应用适当的平滑方向。有些人更明确地执行了这两个步骤,有些人只是将所有数学结果合而为一。

答案 2 :(得分:0)

中值滤波器可能对您有所帮助,因为它可以保持图像中的边缘既清晰又适当,同时消除了外围噪声。它的工作原理是将每个像素替换为其邻域中的中间像素,即如果您按值对邻域像素进行排序,则该像素将是中间像素。