2013-06-18 13 views
2

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

Не так ли?

Если да, то как концы соединения?

ответ

5

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

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

Смежные вопросы