Вы не исключили бы второй проход.Если вы изменили метки соседних пикселей, что насчет их соседних пикселей?По сути, если это событие происходит, вы обнаружили, что две метки находятся в одном классе эквивалентности;но вам все равно придется пройтись по всему, что вы исследовали до сих пор, чтобы переназначить эти ярлыки.Вы также можете просто сделать это на втором проходе и выполнить все переназначения за один раз.
Пример:
+-+-+-+
|?|?|A|
+-+-+-+
|B|B|x|
+-+-+-+
Вы изучаете пиксель x, он соответствует обоим пикселям на север и запад.Предположим, A является минимальной меткой.Таким образом, вы решите пометить три пикселя A, но это не пометит другой пиксель B.Вы все еще должны записать, что A == B, и вам все равно придется пролистать, чтобы перемаркировать любые B, которые остались.Кроме того, позже вы можете обнаружить, что само A эквивалентно некоторой другой метке меньшего размера, и вам придется поменять все эти пиксели позже.