|
Математическое описание функций SIAMS
Photolab™
|
Ниже приведено математическое описание некоторых основных функций
SIAMS Photolab. Список не является полным, так как набор функций
постоянно расширяется. Детальное математическое описание имеющихся в
системе функций приводится в руководстве пользователя продукта и
соответствующих разделах встроенной справки.
|
|
Введение: соглашения, терминология, обозначения
Будем называть полем функцию A(x,y), заданную на множестве всех целых точек плоскости
и принимающую целые значения из диапазона 0...255.
В дальнейшем (хотя это и неточно) термин байтовая матрица или просто матрица
будет часто использоваться в качестве синонима слова поле. Так, под окрестностью
элемента (x,y) матрицы следует понимать множество целых точек плоскости, расположенных
около точки (x,y) - возможно, уже за пределами собственно матрицы, а под значениями матрицы
на этой окрестности - значения функции A.
Под точками мы всегда будем понимать точки N-мерного евклидова пространства с
целыми координатами. Нам будут нужны варианты N=2 (плоскость) и, реже, N=3.
В некоторых случаях точки мы будем называть также векторами.
Множество точек, близких в некотором смысле к точке (x,y), будем называть окрестностью
точки (x,y). Множества точек плоскости, используемые для описания окрестности в процедурах
данного модуля, мы будем также называть шаблонами или апертурами. Число точек (или
мощность) окрестности O будем обозначать через |O|.
Симметричным образом –P множества точек N-мерного пространства P будем называть
множество всех точек вида (-x1,-x2,...,-xN), где (x1,x2,...,xN) –
точки из множества P.
наверх
|
|
Арифметические операции
Описание
Результат арифметической операции над N полями (изображениями) можно записать как
|
A(x,y)= f(A1(x,y),...,AN(x,y)),
|
(1)
|
где
A(x,y) – значение поля–результата в точке с координатами x,y,
Ak(x,y) – значение исходного k-го поля в точке с координатами x,y,
f() – некоторая функция. |
По числу N исходных изображений мы выделяем три типа арифметических операций:
- унарные (одно исходное изображение);
- бинарные (два исходных изображения);
- прочие (более двух исходных изображения).
Среди унарных арифметических операций выделим особо те операции, результат которых не
описывается выражением (1). Это следующие операции:
- "сдвиг",
- "транспонирование",
- "поворот",
- "сжатие/ растяжение".
Для данных операций результат представляется следующим образом:
|
A(x,y)= f(A1(x’(x,y), y’(x,y))),
|
(2)
|
где
x’(x,y), y’(x,y) – некоторые функции координат x, y. |
Например, для операции "сдвиг"
f(A1(x’,y’))= A1(x’,y’),
x’(x,y)= x-dx,
y’(x,y)= y-dy,
где
dx, dy – параметры операции "сдвиг", определяющие вектор сдвига изображения;
в итоге
A(x,y)=A1(x-dx,y-dy). |
Введем обозначения часто используемых операций
Объединение A
A U B полей A и B – поле C, для которого
для всех x, y
C(x,y) = max(A(x,y), B(x,y)).
Пересечение A B полей A и B – поле C, для которого для всех x, y
C(x,y) = min(A(x,y), B(x,y)).
Сдвиг A (dx,dy) поля A на двумерный вектор (dx,dy) – поле B, в
котором для всех x, y
B(x,y) = A(x-dx,y-dy).
Сдвиг A (dx,dy,dz) поля A на трехмерный вектор (dx,dy,dz) – поле
B = (A (dx,dy))+dz, в котором для всех x,y
B(x,y) = truncdiap (A(x-dx,y-dy)+dz, 0, 255),
где через truncdiap(a,b,c) мы обозначаем медиану – 2-е в порядке возрастания из 3 чисел a, b, c.
Сдвиг P (dx1,dx2,...,dxN) множества точек N-мерного
пространства P на вектор (dx1,dx2,...,dxN) – множество всех точек вида
(x1+dx1,x2+dx2,...,xN+dxN),
где (x1,x2,...,xN) – точки из множества P.
наверх
|
|
Морфологические операции
Описание
Мы выделяем некоторый класс преобразований полей, построенных на операциях
объединения, пересечения, сдвига и некоторых простейших арифметических операциях.
Мы называем эти операции морфологическими.
Дилатация A P поля A по множеству целых точек плоскости P -
объединение полей вида A (x,y) для всех точек (x,y) из множества P.
Эрозия поля A по множеству целых точек плоскости P - пересечение полей вида A (-x,-y)
для всех точек (x,y) из множества P.
Пересечение полей вида A (x,y) мы будем обозначать A P;
таким образом, эрозия есть A -P.
Обозначения M P и M P (называемые в
литературе суммой и разностью Минковского) распространяются на случай,
когда M и P - множества точек N-мерного пространства или отдельные точки; в этом
случае полагаем:
M P есть объединение всех множеств вида M (x1,x2,
...,xN), а
M P есть пересечение всех множеств вида M (-x1,-x2,
...,-xN)
для всех точек (x1,x2,...,xN) множества P.
Сумма Минковского двух точечных множеств коммутативна: M P=
P M.
Если p - точка, сумма Минковского A {p} совпадает со сдвигом A p.
Для простоты мы будем также обозначать такую сумму A p (или p A).
Другие морфологические операции суть комбинации дилатации, эрозии и
арифметических операций.
Приведем другие морфологические операции:
Типы шаблонов
Используются следующие типы шаблонов:
- Точечные – описываются координатами точек (относительно начала координат),
входящих в шаблон.
- Прямоугольные (включая квадратные) – описываются горизонтальным и
вертикальным (для квадратного одним горизонтальным) размерами
прямоугольника (квадрата) с центром в начале координат.
- Шаблоны в виде круга – описываются диаметром круга с центром в начале
координат.
- Шаблоны в виде ромба – описываются длиной диагонали ромба с центром в
начале координат.
- Дополнительные шаблоны – наклонные линии и уголки.
Очевидно, что используя точечный тип шаблона можно описать все остальные, но
применение специальных типов шаблонов (прямоугольных и др.) значительно
упрощает их использование, а также позволяет существенно ускорить выполнение
морфологических операций.
наверх
|
|
Ранговые операции
Термины и определения
Вариационным рядом по множеству точек M для данного поля A называется
последовательность значений A на всех точках из M, упорядоченных по возрастанию.
Вариационный ряд мы будем обозначать A\M, его элементы - A\M[0], A\M[1], ..., A\M[m-1], где m= |M|
- число элементов M.
Количество элементов ряда, меньших данного числа v, мы будем называть рангом
v в вариационном ряду A\M и обозначать v[A\M].
Преобразования полей, построенные на анализе вариационных рядов для
различных видов окрестности, будем называть ранговыми.
Как правило, каждой точке плоскости (x,y) по некоторому закону сопоставляется
какое-то свое множество M, называемое в этом случае окрестностью точки (x,y).
Соответствующее отображение множества точек в множество всех множеств точек
мы будем называть окрестностным отображением O, а окрестность конкретной точки
(x,y) будем обозначать O(x,y).
Простейший случай окрестности - так называемая S-окрестность:
O(x,y) = (x,y) -P,
где P - заданный шаблон. |
Такое окрестностное отображение мы будем обозначать S(P); для S-окрестности
точки (x,y) получается обозначение S(P)(x,y).
Кроме S-окрестностей, мы будем рассматривать LH-окрестность: подмножество
S-окрестности S(P)(x,y), на точках которого данное поле A имеет значения, попадающие
в диапазон L(x,y) z H(x,y), где L и H - какие-то
другие поля (обычно вычисленные по A).
Такое окрестностное отображение мы будем обозначать LH(A,L,H,P):
| LH(A,L,H,P)(x,y) = |
 |
(x-dx,y-dy): (dx,dy) О P и L(x,y) A(x-dx,y-dy) H(x,y) | | (пустое множество), если L(x,y) > H(x,y)). |
|
|
Очевидно, S-окрестность есть частный случай LH-окрестности: достаточно
положить L(x,y)=0, H(x,y)=255 для всех x,y.
K-й порядковой статистикой Stat(A,O,k) для заданного поля A, окрестностного
отображения O и некоторой константы k называется поле C, для которого для всех x,y
C(x,y) = A\O(x,y) [k].
В случае N-точечной S-окрестности при k=0 и k=N-1 получаются обычные 2-мерные сумма
и разность Минковского:
Stat(A, S(P), 0) = A P,
Stat(A, S(P), |P|-1) = A P.
Переменной порядковой статистикой Stat(A,O,B,m) для заданного поля A,
окрестностного отображения O, второго поля B и некоторой вещественной
константы-множителя m называется поле C, для которого для всех x,y
C(x,y) = A\O(x,y) [round(B(x,y)*m)],
где
round(v) - ближайшее к v целое число.
K-я порядковая статистика - частный случай переменной порядковой
статистики.
Другой частный случай - это процентиль Perc(A,O,p), p - вещественное число, 0 p 1:
здесь B нужно выбрать так, чтобы было
round (B(x,y) * m) = |O(x,y)|.
50%-процентиль (p=0.5) называется также медианой Med(A,O).
Рангом Rank(A,O,B,m) поля B относительно поля A при заданных окрестностном
отображении O и вещественной константы m называется поле C, для которого для
всех x,y
C(x,y) = min (255, round(B(x,y)*m) [A\O(x,y)]).
Средним Mean(A,O) для заданного поля A и окрестностного отображения O
называется поле C, для которого для всех x,y
C(x,y) = round ((сумма значений A для всех точек из O(x,y))/ |O| ).
Другие ранговые операции
- Медианный фильтр – эквивалентна операции процентиль со значением
50.
- Усреднение. Вычисляет среднее по диапазону значений во множестве
точек шаблона P, ограниченных по величине значением снизу L(x,y), сверху H(x,y).
- Дилатация. Выполняется преобразование процентиль по LH(A,L,H,P)-окрестности,
где значение процентили задано параметром операции уровень, деленным на 100.
- Эрозия. Выполняется преобразование процентиль по LH(A,L,H,P)-окрестности,
где значение процентили задано параметром операции уровень, вычтенным из
100, а затем деленным на 100.
- Срезка. Если обозначим через
vP(L) – значение элемента v в вариационном ряду по P-окрестности с
рангом L,
vP(H) – значение элемента v в вариационном ряду по P-окрестности с
рангом H,
то математически операцию срезки матрицы A по P-окрестности можно выразить
следующим образом:
В качестве рангов L и H выступают вспомогательные матрицы L и H, умноженные
на константы l1 и l2. Параметр операции уровень - l - определяет значение
констант l1, l2 следующим образом:
l1= (|P|-1)* l/ 2,
l2= (|P|-1)* (100-l)/ 2.
- Локальное контрастирование. Операция выполняет локальное (по LH(A,L,H,P)-окрестности)
контрастирование изображения. Нижняя L и верхняя H границы LH-окрестности
вычисляются как процентиль (100-l)/ 2 и (100+l)/ 2, соответственно, исходного
изображения, где l – параметр уровень операции.
- Повышение / понижение ранга. Операция выполняет повышение /
понижение (в зависимости от знака параметра уровень операции) ранга
элемента A(x,y) для всех x,y. А именно,
A(x,y)= A\ LH(A,L,H,P) [ A(x,y)[A\ LH(A,L,H,P)] + l * (|LH|-1)/ 100 ]. - Существенные градиенты:
- Внешний
O = W-(A W), где
W = Perc(A, LH(A,L,H,P), 50+l/2) – операция процентиль.
Другими словами выделяет те области исходного изображения, в пределах
LH-окрестности которых есть более светлые участки, а остальные
наоборот, скрывает. - Внутренний
O = W-(A W), где
W = Perc(A, LH(A,L,H,-P), 50-l/2) – операция процентиль.
Другими словами выделяет те области исходного изображения, в
пределах симметризованной LH-окрестности которых есть более темные
участки, а остальные наоборот, скрывает. - Сильный
O = ((A W2)-A) (A-(A W1)),
где
W1 = Perc(A, LH(A,L,H,P), 50-l/2),
W2 = Perc(A, LH(A,L,H,P), 50+l/2) . - Слабый
O = ((A W2)-A) (A-(A W1)),
где
W1 = Perc(A, LH(A,L,H,P), 50-l/2),
W2 = Perc(A, LH(A,L,H,P), 50+l/2) . - Градиент Бойхера
O = W2-W1, где
W1 = Perc(A, LH(A,L,H,P), 50-l/2),
W2 = Perc(A, LH(A,L,H,P), 50+l/2).
То есть выходное изображение есть разность процентилей
(50+l/2) и (50-l/2) по LH(A, L, H, P)-окрестности исходного изображения.
наверх
|
|
Прочие операции
Операции этого типа не относятся ни к одному из трех предыдущих
типов операций.
- Заливка пор. Для бинарных изображений заполняет поры,
полностью находящиеся внутри частицы.
- Выделение границ. Отыскивает, в соответствии со значением
параметра границы, или вертикальные (резкие перепады яркости
при движении по горизонтали), или горизонтальные (резкие
перепады яркости при движении по вертикали), или одновременно те
и другие (резкие перепады яркости при движении как по
горизонтали, так и по вертикали) границы на исходном изображении
и "прорисовывает" их на результирующем изображении
значением перепада.
- Подчеркивание границ. Подчеркивает, в соответствии со
значением параметра границы, или вертикальные (резкие перепады
яркости при движении по горизонтали), или горизонтальные (резкие
перепады яркости при движении по вертикали), или одновременно те
и другие (резкие перепады яркости при движении как по
горизонтали, так и по вертикали) границы на входном изображении
– "размытые" границы становятся четкими. А именно, для
каждого монотонно изменяющегося (возрастающего или убывающего)
сегмента (горизонтали или вертикали) изображения выполняется
замена значений элементов такого сегмента на значение
ближайшего к ним конца сегмента.
наверх
|
|
|
|