Сглаживание края в большом масштабе

У меня есть изображения глаз и бровей, как показано ниже.

Исходное изображение

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

Желаемое изображение

Я пробовал с морфологическим открытием, но с другим размером SE, он либо заполняет неожиданную область, либо оставляет некоторые неровные края. Вот результат с кругом SE размером 9 и 7 соответственно.

Результат с использованием SE размера 9Результат с использованием SE размера 7

Другая идея состоит в том, чтобы вычислить выпуклую оболочку брови и залить цвет. Но так как бровь обычно изгибается, и выпуклая оболочка станет чем-то вроде следующего изображения, которое также не очень идеально.

Результат с использованием выпуклой оболочки

Или я должен сделать каждый пиксель на краю, чтобы быть вершиной многоугольника, а затем сгладить многоугольник? Любая конкретная идея здесь?

Любая идея, как я могу получить результат на втором изображении?

Я использую Python OpenCV. Код или общая идея приветствуются. Спасибо!

0 ответов

Другие вопросы по тегам