Как устранить ошибки по краям после вырезания изображения?

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

Прежде всего, я использую платформу MATLAB, поэтому, если вы можете предоставить несколько образцов, это было бы здорово. Но если вы не хотите писать образцы кода, просто дайте мне несколько советов, приемов и т. Д.

Позвольте мне объяснить мою проблему. Я сегментировал изображение .jpg и вырезал из него некоторые области. Затем я сохраняю результат как .png, используя маску. Результат такой (черная часть на самом деле прозрачная, я сделал ее черной, чтобы лучше видеть проблему);

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

Как вы можете видеть на картинке, есть некоторые не относящиеся к делу области. Мне нужно избавиться от этих нерелевантных областей. Потому что я хочу, чтобы передний план был как можно более гладким. На первый взгляд, я применил к маске размытие по Гауссу и снова сохранил изображение как .png. Но результат неудовлетворительный, как вы можете себе представить. Полагаю, в этой ситуации необходимо более твердое решение, чем я пробовал.

Edit1: Я использовал спектральное матирование. Но это не помогает. Лучший результат, который я могу получить, - это такой;

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

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

Любые образцы кода MATLAB, техника и подход были бы замечательными. Если вам нужны дополнительные объяснения, не стесняйтесь спрашивать.


person Erdi İzgi    schedule 15.03.2015    source источник
comment
Объясните, пожалуйста, как выполняется сегментация. Кажется, вы сегментируете, используя абсолютные значения цвета, игнорируя градиент.   -  person Daniel    schedule 15.03.2015
comment
Да, отчасти вы правы. Он основан на подобии цвета узла. Я минимизирую энергию Гиббса. Как вы, возможно, знаете, алгоритмы вырезания графа Бойкова и Джолли (2001) работают очень хорошо. Но в окончательном результате, как видите, есть несколько мелких проблем.   -  person Erdi İzgi    schedule 15.03.2015
comment
@Erdi вы используете 4-связный сеточный граф или 8-связный? Вы можете рассмотреть более высокую степень подключения, как предлагает cs.cornell. edu / People / vnk / paper / BK-ICCV03.pdf или pub.ist.ac.at/~vnk/papers/KB-ICCV05.pdf   -  person Shai    schedule 16.03.2015
comment
@Shai Я использую 4-связный граф. В первой добавленной вами статье есть несколько примеров использования 8-n и 26-n. Результаты очень впечатляющие. Это действительно так. Я думаю, это решит мою часть сглаживания краев должным образом. Я попробую.   -  person Erdi İzgi    schedule 16.03.2015


Ответы (1)


Вы не хотите просто "размыть по Гауссу" результат, вам нужна мягкая сегментация, известная как матирование . В качестве первой остановки для матирования изображения я бы порекомендовал Левина Рав-Ача и Лищински Spectral Matting . Вы найдете там код Matlab (я использовал его раньше - очень впечатляющие результаты).

person Shai    schedule 15.03.2015