Вступление
Острые края, честно говоря, просто опасны, поэтому, учитывая PNG в качестве входных данных, размыть изображение, используя метод, описанный ниже, и притупить эти проклятые острые края.
метод
Чтобы получить значение RGB каждого пикселя, используйте следующие три уравнения:
Там , где является суммой красных значений каждого из соседних пикселей в квадрате. Значение - это количество соседних пикселей (например, угловой пиксель будет иметь значение равное 3, в то время как пиксель вокруг центра изображения будет иметь значение равное 8).
Смежный пиксель - это пиксель, который находится на расстоянии 1 пиксель от исходного пикселя во всех направлениях (влево, вправо, вверх, вниз и на всех диагоналях).
Например, на следующем изображении 3 x 1:
Размытое значение RGB среднего пикселя будет:
где любые десятичные значения округляются до ближайшей единицы. Вы не должны просто указывать результат.
Следовательно, средний пиксель будет цвета (0, 221, 221) или:
В результате на изображении:
Вы должны повторить этот процесс для каждого пикселя в изображении. (Обратите внимание, что вы делаете это с оригинальными пикселями, а не с измененными пикселями. вы не должны перезаписывать исходное изображение и должны полностью отделять его от нового размытого изображения ).
Если вы рассчитываете, что любое значение больше 255, предположите, что его значение равно 255 (т. Е. Значение 374 будет установлено на 255).
Полученный результат должен быть отдельным PNG-изображением (вы можете назвать это как хотите).
Примеры
супер Марио
Оригинал:
Размытый:
шахматная доска
Оригинал:
Размытый:
чипсы
оригинал
Размытый
Уже не такой четкий
американская готика
Оригинал:
Размытый:
Чтобы увидеть размытие на больших изображениях, лучше всего запустить программу на размытом изображении:
Вызов
Самый короткий код для размытия заданного изображения PNG побеждает.
Вы можете использовать библиотеки обработки изображений (например, PIL), но вы не должны использовать встроенные функции размытия (Mathematica, я смотрю на вас).
Заметка
Как говорит @orlp ниже:
Для записи, (насколько мне известно) это не стандартный метод размытия. Эта задача не является образовательным ресурсом.
n
должен появиться в знаменателе.