【问题标题】:Connected Components with even size kernel具有均匀大小内核的连通组件
【发布时间】:2021-03-17 23:15:42
【问题描述】:

我对连接组件进行了一些研究。在 MATLAB 或 OpenCV 库中,它们始终指示内核可以是 3x3 数组,并且可以是 4 连接或 8 连接。我做了很多研究,但找不到答案。

我知道内核可以是任何形状。但是在连接组件的情况下,比如说,我们有一个 5x5 的内核,即使它们在另一个标签中,它也可以检测到 1。 (由于大小,5x5 内核可以从锚点看到 2 个像素区域)。而且,比如说,我们有 4x4 内核(甚至大小的内核),在这种情况下,我们甚至没有锚。所以我的问题是如何使用 4x4 和 5x5 内核应用连接组件标签?

【问题讨论】:

  • 对不起,如果我含糊其辞。关于连接组件标记,我被要求使用 3x3、4x4 和 5x5 全二维阵列内核进行三种不同的标记。 3x3 很简单,5x5 对我来说有点模糊,但我猜它对于我上面提到的东西并不是最优的。我最大的难题是如何用 4x4 阵列进行 CC 分析。我在问是否有办法,因为结构元素中没有“中间点”,在这种情况下是 4x4。我不知道如何应用,或者是否可以将偶数结构化 kernell 应用到 CCA 中的图像
  • 好的,我已经编辑了你的帖子以符合我认为你的意思。如果我误解了,请进一步edit
  • 您可以将锚点选择在内核中您想要的任何位置。通常,对于 mxn 内核,选择的锚点是 ceil([m/2, n/2])(使用从 1 开始的索引)。

标签: matlab opencv image-processing connected-components


【解决方案1】:

确实,连通分量分析 (CCA) 通常与 3x3 内核一起应用,或者更确切地说,仅将直接 4 或 8 连通邻居作为邻居来应用。

但是人们可以选择更大的社区来被认为是连通的。使用 5x5 内核,可以忽略一个像素大小的间隙,从而生成更大的连接组件。

要使用更大的内核实现 CCA,可以对图像应用膨胀,应用普通 CCA,然后将输入图像中为 0 的像素重置回 0。膨胀应该是这样的大小,以填充所需的间隙大小。对于忽略 1 像素间隙的 5x5 内核情况,我们需要应用 2x2 膨胀来填充 1 像素间隙。

关于偶数大小的内核:一般来说,such kernels have no problem。人们可以在任何希望的地方定义原点(锚点)。我们总是得到一个不对称的内核。

但是,对于 CCA,我不清楚不对称内核的含义。右边的相邻两个像素是相连的,但左边的两个像素没有。这个像素B连接到A,但是A没有连接到B?对我来说似乎没有意义。连接定义必须是对称的才有意义。这类似于距离的定义,要求距离(a,b)=距离(b,a)。

【讨论】:

    猜你喜欢
    • 2013-06-06
    • 2018-12-10
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2016-08-12
    • 1970-01-01
    • 2014-09-25
    相关资源
    最近更新 更多