Алгоритм увеличения региона с использованием слоя насыщенияC++

Программы на C++. Форум разработчиков
Гость
Алгоритм увеличения региона с использованием слоя насыщения

Сообщение Гость »


Я пытаюсь реализовать алгоритм увеличения области, используя начальную точку, выбранную вручную, чтобы отделить руку от фона. Мне нужно использовать слой «Насыщенность».

Это исходное изображение:


Изображение


Слой насыщенности выглядит следующим образом:


Изображение


И я попробовал добавить размытие по Гауссу вот так:

GaussianBlur(src, src, Size(5, 5), 2.85, 2.85, BORDER_DEFAULT);

Я пробовал много вариантов размера ядра и сигмы X/Y.

После добавления размытия слой выглядит следующим образом:


Изображение


Алгоритм, который я пытался реализовать, начинается с моей начальной точки, проверяет всех соседей и на основе средней насыщенности текущего региона добавляет точку в регионе, если значение близко. Я перепробовал много вариантов порога. Код выглядит следующим образом:

while (!q.empty()) { Точка p = q.front(); д.поп(); для (int я = 0; я

Вернуться в «C++»