在连通组件标记中,4连通和8连通有什么优点?一个比另一个更好吗?

7

我想实现连通组件标记,但我不确定应该使用4连通还是8连通方式。我已经阅读了3份相关材料,但没有一份解释他们选择图连接性的原因。其中一份选择了8连通,另外两份选择了4连通,其中一份说他选择4连通是为了程序追踪更短(并指出将其伪代码扩展到8连通应该很容易)。那么,一个比另一个更有优势吗?


哦,连通组件标记。让我想起了旧日的时光。 - Adam Hawes
8不应该比4使追踪更短吗?更宽的搜索并不是那么深入... - ltjax
@Itjax 这是8的一个优势吗?作者所指的“缩短跟踪”是指“在我需要解释的那些迭代中,我只需解释更少的相邻像素(8 vs 4)”。 - skytreader
3个回答

5

唯一真正的区别在于算法如何处理对角线配置。使用菱形邻居,对角线“内”元素将不会相连。而使用方形邻居,则会相连。

您可能希望将此视为一个不明确的情况,而不仅仅是始终执行其中之一。一些现有策略将查看二值化之前的实际值,并在对角线元素之间插值一个值。该值进行二值化,当它也在内部时,对角线元素会连接。否则,它们将不会连接。


4
根据我的经验,我认为使用4或8个连接并没有什么“优点”。

使用4连接进行标记,可能会得到更多的对象。这就像一个像素岛。一些“岛屿”只通过一个像素与其他岛屿相连,如果这个像素是对角线的,则使用4个连接将把这两个岛屿标记为两个独立的对象,而8个连接则假定它们是一个对象。


0

我对这个页面的评论持不同意见,至少在涉及二进制图像搜索算法方面是如此。在这里,当使用4连通性而非8连通性时,可以展示出明显的优势。也就是说,在解决方案的几何形状上。显然,缺点在于时间复杂度(理论上,“4模式”操作的时间复杂度是另一种模式的两倍)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接