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

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

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


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

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


Изображение


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


Изображение


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

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

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

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


Изображение


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

while (!q.empty()) { Точка p = q.front(); д.поп(); для (int я = 0; я
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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