在连接组件标签中,如果我看到左侧的像素和当前像素上方的像素具有相同的颜色但标签不同,我不能自动将它们的标签重新分配为相同的(而不是使用等价表) ?
Wikipedia和MathWorks将最小标签分配给当前像素,否则将保持相邻像素相同。然后,他们用另一遍擦亮标签表。除非我弄错了,否则我的调整将允许我在一次通过中统一标记图像。有没有我的小调整会破坏算法的例子?
你不会消除第二遍。如果您确实更改了相邻像素的标签,那么它们的相邻像素呢?基本上,如果发生此事件,您会发现这两个标签属于同一个等价类;但是您仍然必须遍历到目前为止检查过的所有内容才能重新分配这些标签。您也可以在第二遍中执行此操作,并在一次扫描中完成所有重新分配。
例子:
+-+-+-+
|?|?|A|
+-+-+-+
|B|B|x|
+-+-+-+
您检查像素 x,它匹配北部和西部的像素。假设 A 是最小标签。因此,您选择标记三个像素 A,但这不会重新标记另一个 B 像素。您仍然必须记录 A==B,并且仍然必须扫描以重新标记任何剩余的 B。此外,您稍后可能会发现 A 本身等同于其他一些较小的标签,并且您必须稍后重新标记所有这些像素。