Matlab Bwareaopen эквивалентная функция в OpenCV - PullRequest
5 голосов
/ 27 февраля 2010

Я пытаюсь найти аналогичную или эквивалентную функцию Matlabs " Bwareaopen " в OpenCV?

В MatLab Bwareaopen (изображение, P) удаляет из двоичного изображения все подключенные компоненты (объекты), у которых меньше P пикселей.

В моем 1-канальном изображении я хочу просто удалить небольшие области, которые не являются частью больших? Есть ли тривиальный способ решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 27 февраля 2010

Взгляните на cvBlobsLib , в ней есть функции, которые делают то, что вы хотите. На самом деле, пример кода на первой странице этой ссылки делает именно то, что вы хотите, я думаю. По сути, вы можете использовать CBlobResult, чтобы выполнить маркировку подключенных компонентов на вашем двоичном изображении, а затем вызвать Filter, чтобы исключить BLOB-объекты в соответствии с вашими критериями.

1 голос
/ 10 мая 2016

Нет такой функции, но вы можете 1) найти контуры 2) Найти контуры области 3) отфильтровать все внешние контуры с площадью меньше порога 4) Создать новое черное изображение 5) Нарисуйте на нем левые контуры 6) Маска с оригинальным изображением

...