Размытие — самая частая операция в обработке изображений: им смягчают фон, делают «матовое стекло» в интерфейсах, из него же собирают свечение, резкость и тени. Слой умеет четыре вида: по Гауссу, смаз в движении, наезд камеры и вращение вокруг центра.
Как это устроено
Гауссово размытие заменяет каждую точку средним по окрестности с весами колокола Гаусса. У этого ядра два редких свойства. Оно единственное, которое одновременно круглое и распадается на произведение по осям, поэтому двумерное размытие делается двумя одномерными проходами — по горизонтали и по вертикали: примерно 4R отсчётов вместо 4R². И два гауссовых размытия подряд дают снова гауссово — дисперсии складываются. Это позволяет не платить за большой радиус: слой уменьшает картинку вдвое, пока σ не станет не больше шести текселей, размывает там и поднимает обратно кубическим B-сплайном. Размытие на четверть кадра стоит почти столько же, сколько на пару пикселей, — и в превью, и в 8K.
Смаз, наезд и вращение усредняют точки вдоль пути — отрезка, луча из центра или дуги. Три прохода по 8 отсчётов, каждый в 8 раз мельче предыдущего, дают 512 точек без двоящихся копий. Длина смаза подобрана так, чтобы его σ совпала с гауссовой при том же «Радиусе»: у отрезка длины ℓ она равна ℓ/√12. Напоследок результат чуть дизерингуется, чтобы в 8 битах на плавных переходах не появились полосы.
Немного истории
Кривую, которую теперь зовут гауссовой, первым получил Абрахам де Муавр в 1733 году, а Гаусс в 1809-м сделал её законом ошибок астрономических измерений. Физики знают её как решение уравнения теплопроводности: размытие по Гауссу с σ — это диффузия длительностью σ²/2. В компьютерное зрение она пришла как «масштабное пространство»: Эндрю Уиткин (1983) и Ян Кундеринк (1984) показали, что при таком размытии с ростом масштаба не рождаются новые детали. В том же 1983 году Питер Бёрт и Эдвард Адельсон предложили пирамиду уменьшенных копий — ту самую лестницу, по которой спускается этот слой.
Что покрутить
- «Радиус» задан в долях кадра: 0,005 — лёгкая мягкость, 0,05 — туман, 0,2 — одни пятна цвета.
- «Наезд» с «Силой» 0,3–0,6 — «прыжок в гиперпространство»: всё разлетается из «Центра».
- «В движении» с «Радиусом» 0,03–0,06 — смаз, как на снимке из окна поезда; «Направление» задаёт курс.
- «Вращение» — длинная выдержка карусели или завихрение вокруг глаза бури.
- Сильное размытие поверх «Фрактальных пламён» и «Странных аттракторов» превращает их в светящийся туман, а «вращение» над «Квазикристаллом» или «Филлотаксисом» — в вихрь.