Как объединить / объединить контуры в OpenCV?

Есть ли такая операция как «соединение» существует / целесообразно для контуров? Поскольку контур ограничивает некоторую область на плоскости, несколько контуров можно объединить в наборы.

Не так ли?

Если да, то как объединить контуры?

2

Решение

Да, вы можете объединять (и пересекать, и устанавливать разность, и симметричную разность) контуров. Так как они являются векторами cv :: Point и, таким образом, представлены в виде полигонов, вы можете использовать любые алгоритмы / библиотеки, подходящие для этого. Просто найдите SO для объединения полигонов и т. Д. Но что-то подобное еще не включено в OpenCV.

Простой (но не очень производительный) способ в OpenCV — создать два черных изображения, по одному для каждого контура, нарисовать каждый контур белым и заполненным и использовать поразрядно или на изображениях, чтобы получить объединенное изображение. Затем вы можете снова вывести контур с помощью cv :: findContours.
Другие операции (пересечение, установка различий и sym diff) могут выполняться с побитовым и, вычитанием и сложением + порогом соответственно.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]