【问题标题】:thinning/skeletonization algorithm with 4 known neighbors具有 4 个已知邻居的细化/骨架化算法
【发布时间】:2014-12-18 05:13:31
【问题描述】:

我正在寻找一种细化/骨架化算法,如果我只知道 4 个邻居而不是 8 个邻居,它就可以工作。 从我能找到的所有算法中,我假设我了解对角线邻居。

那么有人知道如果我只知道顶部、右侧、底部、左侧邻居时也可以使用的细化算法吗?

结果应该是这样的: http://www.cs.ru.nl/~ths/rt2/col/h9/thinning.GIF

这些不是我要找的: http://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Skel.png/220px-Skel.png 形状应该和第一个例子一样保持

【问题讨论】:

  • 我敢肯定有几种标准方法,但是“删除与 1 个白细胞或几个白细胞相邻的所有黑细胞,除以最多 4 步 BFS(仅使用空白)” ?该算法的 7-10 次迭代可能会解决您的问题。
  • 我不确定我是否理解正确。我偶然发现这部分“或几个白细胞被最多 4 步 BFS 划分”。如何防止第一个示例中的结尾被删除?
  • 这不是个好主意(至少需要开发),我试过了,结果很糟糕i.imgbox.com/V9DTA0IQ.jpgi.imgbox.com/IkclhkM3.jpgi.imgbox.com/Vy2gSwrs.jpgi.imgbox.com/Vy2gSwrs.jpgi.imgbox.com/kyZIL7ZP.jpgi.imgbox.com/pjj9iVOd.jpg@987654328 @ 我对 BFS + A* 的另一个想法也失败了。 i.imgbox.com/bGJX6OxB.png最好知道8个邻居,而不是4个...
  • 顺便说一句,你应该先尝试获取一些关于 4 个邻居的信息,然后通过对角线获取与起始单元格相邻的邻居的信息。你会得到关于 8 个邻居的信息,而不是 4 个。
  • BTW2, mb 你不应该在一般情况下解决这个问题。如果您的兴趣是英文字母 - 设计专门为它们工作的东西可能会更容易。

标签: algorithm image-processing


【解决方案1】:

我建议使用 8-neighbour 算法之一,但为对角线单元提供虚拟信息或以其他方式修改考虑邻居的算法部分。

由于您对正在查看的事物类型不太具体,因此很难提供具体建议。大多数算法将包含如下所示的部分:

for n in neighbours:
  do stuff

在这种情况下,您需要编辑neighbours

其他人将应用某种掩码或内核函数。编辑该内核。

【讨论】:

    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多