Эффективный способ объединить пересекающиеся ограничивающие прямоугольники

Я пытаюсь упростить следующее изображение с помощью OpenCV:

У нас здесь много красных фигур. Некоторые из них полностью содержат другие. Некоторые из них пересекаются со своими соседями. Моя цель - объединить всехпересекающий формы, заменяя любые две пересекающиеся фигуры ограничительной рамкой многоугольника их объединения. (повторяется до тех пор, пока больше не будет пересекающихся фигур).

Под пересечением я имею в виду также касание. Надеюсь, это прояснит все на 100%:

Я пытаюсь сделать это эффективно, используя стандартные операции морфологии; очевидно, это можно сделать наивно в O (N ^ 2), но это будет слишком медленно. Расширение не помогает, потому что некоторые фигуры находятся на расстоянии всего 1 пикселя, и я не хочу, чтобы они сливались, если они не пересекаются.

Ответы на вопрос(2)

Ваш ответ на вопрос