Есть ли такая операция как «соединение» существует / целесообразно для контуров? Поскольку контур ограничивает некоторую область на плоскости, несколько контуров можно объединить в наборы.
Не так ли?
Если да, то как объединить контуры?
Да, вы можете объединять (и пересекать, и устанавливать разность, и симметричную разность) контуров. Так как они являются векторами cv :: Point и, таким образом, представлены в виде полигонов, вы можете использовать любые алгоритмы / библиотеки, подходящие для этого. Просто найдите SO для объединения полигонов и т. Д. Но что-то подобное еще не включено в OpenCV.
Простой (но не очень производительный) способ в OpenCV — создать два черных изображения, по одному для каждого контура, нарисовать каждый контур белым и заполненным и использовать поразрядно или на изображениях, чтобы получить объединенное изображение. Затем вы можете снова вывести контур с помощью cv :: findContours.
Другие операции (пересечение, установка различий и sym diff) могут выполняться с побитовым и, вычитанием и сложением + порогом соответственно.
Других решений пока нет …