Я пытаюсь упростить следующее изображение с помощью OpenCV:
У нас здесь много красных фигур. Некоторые из них полностью содержат другие. Некоторые из них пересекают своих соседей. Моя цель состоит в том, чтобы объединить все пересекающиеся фигуры, заменив любые две пересекающиеся фигуры рамкой ограничения их союзного многоугольника. (повторяя, пока не будет больше пересекающихся фигур).
Под пересечением я подразумеваю также касание. Надеюсь, это делает его на 100% понятным:
Я пытаюсь сделать это эффективно, используя стандартные операции морфологии; очевидно, это можно сделать наивно в O (N ^ 2), но это будет слишком медленно. Дилатация не помогает, потому что некоторые фигуры разделены только 1px, и я не хочу, чтобы они сливались, если они не пересекаются.