OpenCV — сохранение только отмеченных BLOB-объектов в python

У меня есть морфологическая проблема, которую я пытаюсь решить с помощью OpenCV. У меня есть два изображения.

  1. Маска
  2. Семя

В изображении маски я пытаюсь сохранить только капли, отмеченные начальным изображением, и удалить остальные.

Ниже я публикую маску и изображение семени

Изображение маски:

Маска1

Изображение семени:

введите здесь описание изображения

Чтобы еще больше проиллюстрировать проблему, я увеличил изображение и создал сюжет. подсюжет

В этом примере график справа — это начальное изображение, а график слева — изображение маски. В конце операции я хотел бы, чтобы в результате слева была капля в форме хобота слона, поскольку она отмечена начальными координатами (слева).

Побитовые операции дадут мне только перекрывающиеся области между начальным числом и маской (результат — тот же самый квадратный шарик). Одним из возможных решений является использование открытия путем реконструкции, однако OpenCV не имеет его реализации.

OpenCV - существует ли реализация реконструкции на основе маркеров в opencv

Любые указатели приветствуются!


person Bharath S    schedule 10.02.2017    source источник


Ответы (1)


Хорошо, спасибо всем, кто нашел время, чтобы просмотреть этот пост. Мне не удалось найти решение этой конкретной проблемы в OpenCV. Поэтому я прибегнул к использованию библиотеки PYMORPH.

https://pythonhosted.org/pymorph/

Функция Inf-reconstruction делает именно то, что я хотел.

pymorph.infrec(f, g, Bc={крест 3x3})

infrec создает образ y с помощью бесконечного числа рекурсивных итераций (итераций до достижения устойчивости) расширения f на Bc, обусловленного g. Мы говорим, что y является инф-реконструкцией g по маркеру f. Алгоритмы и приложения см. в Vinc:93b.

Параметры :
f : Изображение маркера (серое или бинарное). g : Кондиционирующее изображение (серое или бинарное). Bc : элемент структурирования связности (по умолчанию: крест 3x3). Возвращает :
y : изображение

Надеюсь, это поможет другим, преодолевающим аналогичные препятствия.

Спасибо

person Bharath S    schedule 10.02.2017