МАТЕМАТИЧЕСКИЕ ЗАДАЧИ КОМПЬЮТЕРНОЙ ГРАФИКИ
Download
Report
Transcript МАТЕМАТИЧЕСКИЕ ЗАДАЧИ КОМПЬЮТЕРНОЙ ГРАФИКИ
AKVIS Lab
МАТЕМАТИЧЕСКИЕ ЗАДАЧИ
КОМПЬЮТЕРНОЙ ГРАФИКИ
Гусаренко С.А.
2010
akvis.com
1. Демозаика
Demosaicing Algorithm
Постановка задачи
фотосенсоры цифровой камеры
байеровский шаблон (мозаика)
камера
demosaicing
Простейший подход
Билинейная интерполяция
1
G5 (G2 G4 G6 G8 )
2
1
1
R2 ( R1 R3 ) R4 ( R1 R7 )
2
2
1
1
B2 ( B1 B3 ) B4 ( B1 B7 )
2
2
мозаика
билинейная
интерполяция
Заметны артефакты в
виде цветовых пятен
(мозаики)!
Стандартный алгоритм
Алгоритм Киммела
1. Интерполяция зеленого
E2G2 E4G4 E6G6 E8G8
G5
,
E2 E4 E6 E8
E – соответствующий
градиент
2. Интерполяция цветовых отношений
Предположение о постоянстве (или гладкости) цветовых отношений R/G и B/G
E1
R5 G5
R
R
R
R1
E3 3 E7 7 E9 9
G1
G3
G7
G9
E1 E3 E7 E9
3. Коррекция цветовых отношений
Отношения R/G и B/G постоянны → отношения G/R и G/B тоже постоянны
4. Итерации коррекции
исходное
изображение
билинейная
интерполяция
Kimmel
(12 итераций)
Raw-процессор
Демозаика
γ-корреция
Настройка точки белого
Другие преобразования (точка черного,
фильтрация шума, и т.д.)
Сохранение изображения в стандартном
формате (JPG, TIF, BMP и т. д.)
2. Обработка изображения.
Формат RGB.
Формат RGB – стандартный 24-разрядный формат представления
цвета, где каждый пиксел представлен как три байта: один байт для
красного компонента, один байт для зеленого компонента, и один
для синего.
Формат HSL
Hue – цветовой оттенок в градусах от 0°
до 360°.
Saturation – насыщенность в процентах
0% до 100%. Мера количества в цвете
серой краски.
Lightness – светлота или яркость
цвета от 0 до 100.
Изображение. Фильтр.
Изображение – трехмерная матрица
(0,1,
SizeX 1) (0,1,
SizeY 1),
I : b3 ,
b [0,
где
, 255].
Фильтр – преобразование изображения I ( I ).
Линейный фильтр – линейное преобразование изображения I L( I ).
Каждый линейный фильтр представим в виде L( I )( p)
w(q, p) I (q),
q
где w - весовая функция (вес) точки q относительно точки p.
Свертка – линейный фильтр с весовой функцией w( p, q) ( p q) :
I ( p q) I (q).
q
Дискретное преобразование
Фурье. Z-преобразование.
Двумерное дискретное преобразование Фурье (ДПФ) изображения
1
( FU )(k , l )
SizeX SizeY
SizeX 1 SizeY 1
U ( p )e
p x 0
p yl
p k
2 i x
SizeX SizeY
.
p y 0
Обратное дискретное преобразование Фурье
U ( p)
SizeX 1 SizeY 1
F ( k , l )e
k 0
kp lp y
2 i x
M N
.
l 0
ДПФ свертки F ( U ) SizeX SizeY F ( ) F (U ).
Двумерное дискретное z-преобразование изображения
SizeX 1 SizeY 1
Z (U )( z1 , z2 ) U ( p) z1 p z2 .
x
p x 0
p y 0
py
Частотная характеристика
фильтра
Функция ω – импульсная функция фильтра.
ДПФ функции ω – частотная характеристика фильтра.
Фильтр низких частот (ФНЧ) – фильтр, сохраняющий низкие частоты и
подавляющий высокие.
Фильтр высоких частот (ФВЧ) – фильтр, сохраняющий высокие частоты и
подавляющий низкие.
3. Фильтрация
изображений от шума
Изображение I есть сумма I U N , где
U – исходное изображение,
N – шум.
Задача фильтрации - восстановить изображение U.
Виды шумов:
- белый шум - сигнал, отсчеты которого не коррелируют друг с другом. Белый гауссовский
шум описывается функцией плотности распределения амплитуд:
d2
2
1
(d )
e 2
2 d
где d - амплитуда шума, а σ - параметр распределения,
- импульсный шум - случайные изолированные точки на изображении, значение которых
значительно отличается от значений окружающих их точек,
- цветные пятна.
Box-фильтр
Математическое ожидание шума MN = 0. Следовательно: MU = MI.
Среднее значение исходного изображения в точке p
U ( p)
U (q) I (q )
,
1
1
qS ( p , r )
qS ( p , r )
Если считать,
что
qS ( p , r )
где S ( p, r ) {q : p q r}
окрестность точки p.
qS ( p , r )
U ( p) U ( p), то U ( p )
I (q)
.
1
qS ( p , r )
qS ( p , r )
Формула вычисляет среднее значение изображения по некоторой
окрестности и определяет Box-фильтр.
Вычислительные алгоритмы
Прямое вычисление сумм по окрестности каждого пикселя,
время работы O(r2).
Вычисление сумм по вертикали и горизонтали каждого
пикселя последовательно, время работы O(r).
Использование таблицы сумм, время работы O(1).
Использование двигающегося окна, время работы O(1).
Оригинальное изображение
Оригинал
Увеличенный фрагмент
Пример работы Box-фильтра
Box-фильтр, r=2
Гауссов фильтр
Гауссов фильтр определяется формулой:
U ( p)
e
| p q|2
2 2
I (q )
qS ( p , r )
| p q|2
.
qS ( p , r )
e
2 2
где
p ( px , py ), q (qx , q y ),
| q p | ( qx px ) 2 ( q y p y ) 2 .
Box-фильтр является предельным случаем гауссова
.
фильтра при
2 2 2 | |2
.
Частотная характеристика гауссова фильтра ( ) e
Гауссов фильтр подавляет высокие частоты, сохраняя низкие,
то есть является примером ФНЧ.
Пример работы гауссова
фильтра
Гауссов фильтр, σ=1.8
Вычислительные алгоритмы
3σ ≈ 2r+1
Прямое вычисление сумм со своим весом по окрестности
каждого пикселя, время работы O(r2).
Вычисление сумм со своим весом по вертикали и
горизонтали каждого пикселя последовательно, время
работы O(r).
Быстрое ДПФ, время работы O(log(r)).
Аппроксимация с помощью рекурсивного фильтра, время
работы O(1).
Аппроксимация одномерного гауссова
фильтра с помощью рекурсивного
фильтра
Аппроксимация импульсной функции дробно-рациональной:
1
e
2
t2
2 2
t
1
, .
2
4
6
a0 a2 a4 a6
Применение ДПФ и переход к z-преобразованию
F ( ) FL ( ) FR ( ),
A2
H L ( z ) GL (1 z )
,
1
2
3
b0 b1 z b2 z b3 z
A2
H R ( z ) GR ( z 1)
.
2
3
b0 b1 z b2 z b3 z
1
Построение рекурсивных последовательностей
Vn BI n
1
1
(bV
b
V
bV
),
U
BV
(bU
b2U n2 bU
).
1 n1
2 n2
3 n3
n
n
1
n1
3
n 3
b0
b0
Нелинейные фильтры
Медианный фильтр
Компонента изображения в окрестности точки p сортируется в порядке
возрастания, и в качестве величины U(p) берется центральное значение
Bilateral-фильтр
Bilateral-фильтр определяется формулой:
U ( p)
e
| p q|2 | I ( p ) I ( q )|2
2 2
22
I (q)
qS ( p , r )
e
| p q|2 | I ( p ) I ( q )|2
2 2
22
.
Оригинал
qS ( p , r )
Пространственный вес
Цветовой вес
Общий вес
Результат
Пример работы Bilateralфильтра
Bilateral
Проблемы:
а) Артефакты в виде пятен шума.
б) Очень медленный, время работы O(r2).
Ускоренные модификации Bilateral-фильтра
1) весовая функция не зависит от расстояния и использование
движущегося окна.
2) фильтрация сначала по горизонтали, а затем по вертикали.
3) аппроксимация набором гауссовых фильтров.
4) трехмерное преобразование Фурье.
Region-фильтр
Region-фильтр определяется
формулой:
U ( p)
e
| p q|2
2 2
S ( p ,d ) S ( q ,d )
22
2
I (q)
qS ( p , r )
e
| p q|2
2 2
S ( p ,d ) S ( q ,d )
2
,
22
qS ( p , r )
где
S ( p, d ) S ( q, d ) I ( p u ) I ( q u ) .
2
2
uS ( 0,d )
Очень медленный!!!
Пример работы Regionфильтра
Вариационный (TV) фильтр
U U
,
Минимизация суммарной величины градиентов U
p
p
y
при известной среднеквадратичной величине шума. x
| U ( p) | dp min,
1
2
2
(
I
(
p
)
U
(
p
))
dp
.
||
Метод множителей Лагранжа | U ( p ) | dp
( I ( p) U ( p)) 2 dp min.
2
U
Уравнение Эйлера-Лагранжа
| U | (U J ) 0.
Профессиональные фильтры
Neat Image
Neat Image
PhotoShop: Reduce Noise
Akvis.Noise Buster v. 7.0
Noise Buster
МАСШАБИРОВАНИЕ
ИЗОБРАЖЕНИЙ
Масштабирование изображений - классическая задача двумерной
дискретной интерполяции.
При увеличении изображения в k раз известно значение только
одного из них.
Nearest
Простейший метод интерполяции.
Недостающие пиксели заполняются значением
ближайшего известного.
Достоинство: быстрота и простота.
Недостаток: сильная пикселизация, особенно хорошо
заметная на наклонных линиях
Original
Nearest
Альтернативный подход: интерполяция сплайнами.
Алгоритм являются линейными и может быть заданы при помощи свертки:
t
Импульсная
функция
H
(
p
q
)
U
(
q
).
h(t ) H
qS ( p ,r )
k
1, t 0.5,
имеет вид: h(t )
0, t 0.5.
I ( p)
Билинейная интерполяция
Изображение I – увеличенное в k раз
изображение U .
Точка ( X , Y ) U , точка ( x, y ) I , причем
x
X 1,
k
y
0 y Y 1,
k
0 x
X X 1, Y Y 1.
Тогда
I ( x, y) (1 x)(1 y)U ( X , Y ) x(1 y)U ( X , Y )
(1 x)yU ( X , Y ) xyU ( X , Y ).
BiLinear
Билинейная интерполяция
Импульсная функция этого фильтра имеет вид
1 t ,
h(t )
0,
t 1,
t 1.
Достоинства: простота и скорость реализации. Значительное уменьшение
пикселизации.
Недостаток: сглаживает четкие границы.
Бикубическая интерполяция
Формулы бикубической интерполяции:
X0 = X - 1; X1 = X; X2 = X + 1; X3 = X + 2; Y0 = Y - 1; Y1 = Y; Y2 = Y + 1; Y3 = Y + 2;
dx0 = x/k-X0; dx1 = x/k-X1; dx2 = x/k-X2; dx3 = x/k-X3; dy0 = y/k-Y0; dy1 = y/k-Y1; dy2 = y/k-Y2; dy3 = y/k-Y3;
I(x, y) = ( dx0*dx1*dx2*dy0*dy1*dy2*U(X3,Y3) - 3.0*dx0*dx1*dx2*dy0*dy1*dy3*U(X3,Y2)
+ 3.0*dx0*dx1*dx2*dy0*dy2*dy3*U(X3,Y1) dx0*dx1*dx2*dy1*dy2*dy3*U(X3,Y0)
- 3.0*dx0*dx1*dx3*dy0*dy1*dy2*U(X2,Y3) + 9.0*dx0*dx1*dx3*dy0*dy1*dy3*U(X2,Y2)
- 9.0*dx0*dx1*dx3*dy0*dy2*dy3*U(X2,Y1) + 3.0*dx0*dx1*dx3*dy1*dy2*dy3*U(X2,Y0)
+ 3.0*dx0*dx2*dx3*dy0*dy1*dy2*U(X1,Y3) - 9.0*dx0*dx2*dx3*dy0*dy1*dy3*U(X1,Y2)
+ 9.0*dx0*dx2*dx3*dy0*dy2*dy3*U(X1,Y1) - 3.0*dx0*dx2*dx3*dy1*dy2*dy3*U(X1,Y0)
dx1*dx2*dx3*dy0*dy1*dy2*U(X0,Y3) + 3.0*dx1*dx2*dx3*dy0*dy1*dy3*U(X0,Y2)
- 3.0*dx1*dx2*dx3*dy0*dy2*dy3*U(X0,Y1) +
dx1*dx2*dx3*dy1*dy2*dy3*U(X0,Y0))/36.0;
Поверхность, полученная в
результате бикубической
интерполяции, является
гладкой функцией.
Оптимален по соотношению
скорость-качество.
Бикубическая интерполяция
Импульсная функция имеет вид:
1.5 t 3 2.5 t 2 1,
t 1,
3
2
h(t ) 0.5 t 2.5 t 4 t 2, 1 t 2,
0,
2 t.
BiCube
Фильтр Эрмита
Импульсная функция имеет вид:
2 t 3 3 t 2 1,
h(t )
0,
t 1,
t 1.
Hermite
Фильтр Митчелла
Импульсная функция имеет вид:
21 t 3 36 t 2 16,
t 1,
1
3
2
h(t ) 5 t 36 t 60 t 26, 1 t 2,
18
0,
t 2.
Mitchell
Фильтр Белла
Импульсная функция имеет вид:
0.75 t 2 ,
t 0.5,
h(t ) 0.5( t 1.5) 2 , 0.5 t 1.5,
0,
t 1.5.
Bell
Фильтр Ланцоша
Импульсная функция имеет вид:
t
sin( t ) sin 3
,
t
h(t ) t
3
0,
t 3,
t 3.
Lanczos
Нелинейные фильтры
Профессиональные программы
Blow
PhotoShop
Extensis
Профессиональные программы
Genue Fractal
Zoom
Akvis.Magnifier v.3.0