基于轮廓的模糊

信息处理 图像处理 过滤 各向异性扩散
2022-02-25 07:34:38

假设我有一张猫的图像和一个对应于猫位置的二进制掩码图像,如图所示

在此处输入图像描述 在此处输入图像描述

我想模糊猫周围的图像区域,但作为与猫边界像素距离的函数。本质上,像素离边界越远,它变得模糊的程度就越大。理想的距离测量是从猫的边界像素径向延伸的等高线,但这可能很复杂。我现在会满足于欧几里得距离。

知道我怎么能做到这一点吗?

1个回答

计算距离变换你可以非常有效地做到这一点。这将为您提供到最近边界像素的欧几里得距离,以及该像素的索引。然后,对掩码中的所有距离进行归一化,使最大值变为 1。这是下一阶段所必需的:在每个点启动一个高斯核。内核大小(以及类似的标准偏差)应该是权重的函数,从距离归一化中获得。您可以使用系数 - 线性比例 - 或复杂内核,具体取决于模糊要求。hσ

最后,使用生成的掩码模糊每个像素的信号。每个像素都有一个独特的蒙版,因此会产生不同的模糊效果。请注意,某些像素可能会出现相同的模糊。

您只需要调整内核大小,对于典型的高斯内核,的函数。该函数只是一个查找表:hσh

   $h$  $\sigma$
    3    (0.65)
    5    (0.87)
    7    (1.43)
    9    (1.88)
    11   (2.31)