Dynami c сглаживание контура в зависимости от резкости содержимого изображения - PullRequest
0 голосов
/ 28 января 2020

У меня удалено фоновое двоичное изображение, из которого был создан непрерывный список контуров. Один из выходных данных выглядит следующим образом: Входное изображение: enter image description here

Выходное двоичное изображение: enter image description here

Из этого двоичного выходного изображения был создан список подключенных контуров.

Затем контур представлен B-сплайновой кривой. Гладкость кривой можно изменить, выбрав контрольные точки через разные интервалы, что работает прямо сейчас.

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

Пожалуйста, поделитесь, если есть какой-либо способ, которым я должен изучить, чтобы решить проблему.

1 Ответ

0 голосов
/ 31 января 2020

Вы можете использовать текущую сумму градиента вокруг точек контура для определения интервала.

Неопределенный псевдокод выглядит следующим образом: 1. Извлеките градиент по всем точкам контура. 2. Итеративно пропустите все точки контура и добавьте значения градиента. 3. Когда добавленная сумма (которая в данном случае является приблизительной для уровня резкости) достигает порогового значения, добавьте контрольную точку и сбросьте сумму.

...