Алгоритм сглаживания расторных изображений

Я ищу эффективный алгоритм, который будет смотреть на четырехканальное изображение (RGBA), находить объект (группу пикселей с альфой> 0, окруженную пикселями с альфой = 0), а затем пытаться сглаживать края объекта. Предложения?


person Mike R    schedule 03.04.2011    source источник
comment
Альфа обычно составляет от 0% до 100% (или от 0 до 255). Пожалуйста, отредактируйте свой вопрос, чтобы ваши альфа-значения не были отрицательными, или объясните, почему они могут быть отрицательными.   -  person James Crook    schedule 03.04.2011
comment
Сглаживание применяется к векторным изображениям. Вы ищете сглаживающий фильтр или что-то в этом роде.   -  person David Heffernan    schedule 03.04.2011
comment
@James Crook: Спасибо, что указали на это! Я отредактировал соответствующим образом.   -  person Mike R    schedule 03.04.2011
comment
@David Hefferman: Сглаживающий фильтр может быть одним из способов выразить это, конечно.   -  person Mike R    schedule 03.04.2011
comment
Почему вы так сосредоточены на альфа = 0, чтобы иметь в виду край? Какое изображение имеет края только при альфа = 0? Почему бы вам не сгладить его во время растеризации, а не после того, как вы его растрировали?   -  person David Heffernan    schedule 03.04.2011
comment
Если альфа не равнялась нулю по краям объекта, то, скорее всего, он уже был сглажен. Например, предположим, что я хотел работать со следующей формой: i26.photobucket. com/albums/c114/the_numbers/aliased_blob.png Вы можете думать об этой форме как о своего рода значке или логотипе, за создание которого я не несу ответственности, однако он мне нужен для работы с моим текущим проектом. Я не хочу уменьшать размер, потому что мне нужно как можно больше деталей. Лучшим решением будет сгладить края.   -  person Mike R    schedule 03.04.2011


Ответы (1)


Я предполагаю, что вы пытаетесь описать ситуацию, когда изображение объекта с альфа-каналом было вставлено на фон без альфа-канала, заменяя пиксели везде, где альфа > 0, а не смешиваясь должным образом. В полученном изображении каждый пиксель с альфой = 0 является фоном, каждый пиксель с альфой > 0 принадлежит объекту. Никакого смешивания не было, только наклеивание.

Итак, алгоритм угадывания того, какого цвета были пиксели, где альфа теперь не равна нулю, решит проблему. Если бы у вас было это, вы могли бы правильно выполнить смешивание во всех местах, где 0% ‹ альфа ‹ 100%, чтобы получить правильное сглаживание края.

Один из способов угадать отсутствующие значения пикселей — сделать каждый неизвестный пиксель средним значением пикселей вокруг него и повторять это до тех пор, пока не будет мало изменений. В значительной степени это алгоритм, используемый для устранения царапин на старых фотографиях с использованием расположенных рядом пикселей. Вы просили эффективный метод. метод с несколькими сетками поможет вам немного быстрее, когда есть большие области с неизвестными пикселями.

Как только у вас появится правдоподобный неизвестный фон, смешайте пиксели с альфой > 0, на этот раз должным образом принимая во внимание их альфу.

person James Crook    schedule 03.04.2011