class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

Мандельброт
IFS
фильтрация
rgb эффекты
интерполяция
определенный интеграл
диффиренциальные уравнения
простые, сложные проценты
сортировка

Алгоритмы

Алгоритм фильтрации

матрица фильтра

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

Вычислим сумму произведений элементов матрицы на соответствующие значения в канале и разделим ее на сумму элементов матрицы, если она не равна нулю. К результату можно также добавить некую константу, особенно если сумма элементов матрицы равна 0. Полученное число и является новым значением красной компоненты обрабатываемого пикселя.

В некоторых API деление на сумму опускают, предлагая использовать матрицы с уже поделенными элементами. Например, матрица размытия 3х3 будет состоять уже не из 1, а из 1/9. Такие матрицы называют нормализованными. Таким образом, избавляемся от лишнего деления и проверки деления на 0.

Другим методом ускорения за счет промежуточных изображений является разложение матрицы на множители. То есть, вначале делаем фильтр по первому множителю, затем по второму множителю. Типичным примером является матрица размывания по Гауссу.

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

К недостаткам алгоритма можно отнести малую скорость обработки, особенно для больших изображений.

Фильтрацию изображения также называют искривлением или сверткой (convolve) изображения. Это на случай, если вы будете искать дополнительную информацию на англ. языке.

смягчение

известные также как smooth, soften или blur

0 0 0 0 0   1 1 1 1 1       0  1  2  1  0
0 1 3 1 0   1 1 1 1 1       1  3 10  3  1
0 3 9 3 0   1 1 1 1 1       2 10 90 10  2
0 1 3 1 0   1 1 1 1 1       1  3 10  3  1 
0 0 0 0 0   1 1 1 1 1       0  1  2  1  0

размытие по Гауссу

1 2 1   1
2 4 2 = 2  * 1 2 1
1 2 1   1

заострение (sharpen)

0  0  0  0  0    -1 -1 -1 -1 -1   -1 -1 -1 -1 -1   -1 -1 -1   1  -2  1
0 -1 -3 -1  0    -1 -1 -1 -1 -1   -1  3  4  3 -1   -1  8 -1   -2  5 -2
0 -3 41 -3  0    -1 -1 49 -1 -1   -1  4 13  4 -1   -1 -1 -1   1  -2  1
0 -1 -3 -1  0    -1 -1 -1 -1 -1   -1  3  4  3 -1
0  0  0  0  0    -1 -1 -1 -1 -1   -1 -1 -1 -1 -1

выделение краев (edge detection)

-1/8 -1/8 -1/8     -1 -1 -1     -5 0 0
-1/8   1  -1/8     0   0  0      0 0 0
-1/8 -1/8 -1/8     1   1  1      0 0 5

рельефность (emboss)

Для двух последних матриц нужно добавлять константу 128.

-2 -1 0   -2 0 0    0 0 0     2 0   0
-1  1 1    0 1 0    0 1 0     0 -1  0
 0  1 2    0 0 2    0 0 -1    0 0  -1 

Диагональное разбиение (diagonal shatter)

1 0 0 0 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1 0 0 0 1	

Горизонтальное размытие (horizontal motion blur)

0 0 0 0 0
0 0 0 0 0
2 3 4 5 6
0 0 0 0 0
0 0 0 0 0

Рейтинг@Mail.ru