Московский государственный университет имени М.В.Ломоносова
Опубликован: 23.04.2007 | Доступ: свободный | Студентов: 3280 / 442 | Оценка: 4.18 / 3.71 | Длительность: 17:54:00
ISBN: 978-5-9556-0098-7
Специальности: Программист
Лекция 7:

Дискретизация. Антиалиасинг. Геометрические преобразования растровых изображений

Таблица 7.1. Одномерные функции-фильтры для антиалиасинга
Название Функция фильтра F(x)
Импульсный (pulse)
F_p(x) = \left\{ \begin{array}{cc} 
1, & |x| \le 1/2  \\ 
0, & |x| > 1/2  \\ 
\end{array} \right.
Треугольный (triangle) F_t(x) = \max \{1 - |x|, 0\}
Гауссовский (Gaussian)
F_{G(\sigma ,R)}(x) = \left\{ \begin{array}{cc} 
\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{x^2}{2\sigma^2}}, & |x| \le R  \\ 
0, & |x| > R  \\ 
\end{array} \right.
Кубический (cubic)
F_{c(a)}(x) = \left\{ \begin{array}{ccc} 
(a + 2)|x|^3 -  (a + 3)|x|^2 + 1, & 0 \le |x| < 1  \\ 
a|x| ^3 - 5a|x|^2 + 8a|x| - 4a, & 1 \le |x| < 2  \\ 
0, & |x| > 2  \\ 
\end{array} \right.
Ланцоша (Lanzcos)
F_{L(R)}(x) = \left\{ \begin{array}{cc} 
sinc(x/R) \cdot sinc(x), & 0 \le |x| \le R  \\ 
0, & |x| > R  \\ 
\end{array} \right.

Двумерные аналоги одномерного фильтра f11(x) строятся двумя путями:

  1. как функция от радиуса: f_2(x, y) = f_1(r) = f_1(\sqrt{x^2 + y^2}) ;
  2. как произведение: f_2(x, y) = f_1(x) \cdot f_1(y).

Первый вариант - более корректный, но второй обладает свойством сепарабельности, т.е. в выражении (7.8) можно двумерное интегрирование разбить на два одномерных:

I(x, y) = \int\limits_{supp(F_1)\times supp(F_1)}^{}F_1(s)F_1(t)Img(x - s, y - t) ds dt  \\
= \int\limits_{supp(F_1)}^{} ds F_1(s)\left( \int\limits_{supp(F_1)}^{}F_1(t)Img(x - s, y - t) dt \right)

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

Фильтры для антиалиасинга.

Рис. 7.9. Фильтры для антиалиасинга.
Фильтры для антиалиасинга (продолжение).

Рис. 7.10. Фильтры для антиалиасинга (продолжение).

Двумерные аналоги фильтров, представленных в таблице 7.1 и на рис. 7.9 и 7.10, приведены в таблицах 7.2, 7.3 (для простоты частота дискретизации равна 1, произвольный случай получается масштабированием по осям). Прямоугольный фильтр соответствует либо цилиндру (первый тип), либо параллелепипеду с квадратным основанием (англ. Box filter) (второй тип); треугольный соответствует либо конусу, либо пирамиде соответственно. По смыслу прямоугольные и треугольные аналоги соответствуют так называемым невзвешенной и взвешенной площадным выборкам. Если рассмотреть Фурье-образы их одномерных аналогов на рис. 7.9, можно заметить, что взвешенная площадная выборка лучше отфильтровывает высокие частоты, поэтому рекомендуется применять именно ее.

Таблица 7.2. Радиально-симметричные фильтры для антиалиасинга
Название Функция фильтра F(s, t) = F_1(r) ( r = \sqrt{s^2 + t^2} ) Изображение
Цилиндрический F_1(r) = F_p(r)

Конусообразный F_1(r) = F_t(r)

Кубический F_1(r) = F_{c(a)}(r)

Ланцоша F_1(r) = F_{L(R)}(r)

Проблема растеризации с учетом антиалиасинга рассмотрена в разделе 7.2. В разделе 7.3 рассмотрены проблемы получения дискретных изображений по другим дискретным изображениям.

Таблица 7.3. Одномерные функции-фильтры для антиалиасинга
Название Функция фильтра F(s, t) = F_1(s) \cdot F_1(t) Изображение
Параллелепипед F_1(x) = F_p(x)

Пирамидальный F_1(x) = F_t(x)

Кубический F_1(x) = F_{c(a)}(x)

Ланцоша F_1(x) = F_{L(R)}(x)