Альфа-канал Blur - PullRequest
       43

Альфа-канал Blur

3 голосов
/ 19 августа 2011

У меня есть этот объект BufferedImage, который гарантированно содержит только один цвет. Я использую его для отображения образца изображения, чтобы показать размер, форму и твердость кисти в инструменте рисования. Я попробовал несколько различных реализаций размытия для твердости ... последнее, что, кажется, работает довольно хорошо, это Stack Filter , написанный Romain Guy.

У меня 2 проблемы.

  1. Быстрее на 1 канале, чем 4?: Ни один из фильтров размытия, которые я пробовал, кажется достаточно быстрым ... Я понимаю, что этот вопрос задавался ранее (и я Я не совсем готов попробовать получить FFTW из C), но мне интересно, есть ли способ выполнить размытие, используя ТОЛЬКО биты альфа-канала? Изображение содержит только один цвет, поэтому в любом случае ни один из других битов не изменится между точками, и я думаю, что это сократит количество вычислений для размытия примерно до 25% всей операции размытия, и я полагаю, что это может привести к Заметное улучшение производительности? Я не смог найти какую-либо информацию об этом, пытаясь через веб-поиск.

  2. Устранение темного ореола: Каждый раз, когда я пробую другой алгоритм размытия, мне приходится переписывать его, чтобы избавиться от темной тени вокруг фигуры, вызванной размытием в "черном" из бесцветные пиксели, где еще ничего не нарисовано. Я читал об этом, и я использую (насколько мне известно) типы изображений INT_ARGB_PRE, которые я помню, читая в качестве решения этой проблемы. Я что-то упустил в этом решении? Нужно ли предварительно отформатировать изображение, чтобы оно интерпретировало все пустые пиксели как белые, а не черные?

Спасибо!

1 Ответ

3 голосов
/ 19 августа 2011

Вы можете найти это интересным: http://www.jhlabs.com/ip/blurring.html

Обсуждается проблема темного ореола, насколько я помню, доступен весь исходный код, он использует только стандартные вещи Java SE.

...