Главная > Продукты > SIAMS Photolab > Математическое описание функций

Продукты
SIAMS Photolab
Структура продукта
Инструменты
Функции
Математическое описание
Системные требования
Экраны продукта
Заказать продукт

Математическое описание функций 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)).

Пересечение AB полей 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.

наверх

Морфологические операции

Описание

Мы выделяем некоторый класс преобразований полей, построенных на операциях объединения, пересечения, сдвига и некоторых простейших арифметических операциях. Мы называем эти операции морфологическими.

Дилатация AP поля A по множеству целых точек плоскости P - объединение полей вида A(x,y) для всех точек (x,y) из множества P.

Эрозия поля A по множеству целых точек плоскости P - пересечение полей вида A(-x,-y) для всех точек (x,y) из множества P.
Пересечение полей вида A(x,y) мы будем обозначать AP; таким образом, эрозия есть A-P.

Обозначения MP и MP (называемые в литературе суммой и разностью Минковского) распространяются на случай, когда M и P - множества точек N-мерного пространства или отдельные точки; в этом случае полагаем:
MP есть объединение всех множеств вида M(x1,x2, ...,xN), а
MP есть пересечение всех множеств вида M(-x1,-x2, ...,-xN)
для всех точек (x1,x2,...,xN) множества P.

Сумма Минковского двух точечных множеств коммутативна: MP= PM.

Если p - точка, сумма Минковского A{p} совпадает со сдвигом Ap. Для простоты мы будем также обозначать такую сумму Ap (или pA).

Другие морфологические операции суть комбинации дилатации, эрозии и арифметических операций.

Приведем другие морфологические операции:

  • Операции открытие и закрытие предназначены для устранения на изображении малых объектов ("пятен" или "полос"), которые в поперечнике не превосходят размеров шаблона, и заключаются в последовательном выполнении эрозии и дилатации (для закрытия – дилатации и эрозии). Для бинарных изображений открытие удаляет частицы, закрытие – поры, для полутоновых – соответственно светлые и темные объекты.
  • Операции выметание положительных шумов и заполнение отрицательных шумов в отличие от открытия и закрытия удаляют только те объекты, которые могут целиком "уместиться" на теле шаблона. Выметание выполняет дилатацию на границу шаблона, эрозию на шаблон и вычисляет минимум из результата и исходного изображения; заполнение наоборот, выполняет эрозию на границу шаблона, дилатацию на шаблон и вычисляет максимум из результата и исходного изображения.
  • Операции связной и топологической эрозии – нетривиальные комбинации дилатаций и эрозий на небольшие точечные шаблоны плюс некоторые арифметические операции. При выполнении связной эрозии линии толщиной в один пиксел и точки сохраняются, все остальные объекты уменьшаются с границы на один пиксел. При выполнении топологической эрозии сохраняются только замкнутые линии толщиной в один пиксел, а все остальные объекты уменьшаются с границы на один пиксел.
  • Операции связной и топологической скелетизации представляют собой цикл связной и топологической эрозии, соответственно, выполняющийся до полного утончения всех объектов.
  • Операции морфологических градиентов суть:
    A-E(A) - внутренний градиент,
    D(A)-A - внешний градиент,
    (A-E(A))(D(A)-A), - сильный градиент,
    (A-E(A))(D(A)-A), - слабый градиент,
    D(A)-E(A), - градиент Бойхера.
    Здесь,
    A - исходное изображение,
    E() - операция эрозии,
    D() - операция дилатации.

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

  • Операции морфологических границ (внутренние, внешние, сильные, слабые, Бойхера) оставляют на изображении участки, на которых перепад интенсивности в пределах шаблона составляет величину не меньшую чем значение параметра операции. Для бинарных изображений параметр не учитывается. 
    Результат морфологической операции граница есть выполнение соответствующей операции градиент и поточечного обнуления тех значений интенсивности, величина которых меньше параметра операции.
  • Операция сглаживание выполняет равномерное сглаживание изображения по шаблону. Результат данной операции можно представить через выражение (1) при
    f(A(O(x,y))= 1/ N * (A1+A2+...+AN),
    где
    N – число точек шаблона,
    A1, A2, ..., AN - значения интенсивностей точек шаблона O(x,y).
  • Суть операции выравнивание интенсивностей заключается в таком преобразовании яркостей изображения, чтобы площади, занимаемые пикселами разной яркости, стали примерно одинаковыми. Данная операция применяется для лучшего выявления всех деталей изображения.

Типы шаблонов

Используются следующие типы шаблонов:

  1. Точечные – описываются координатами точек (относительно начала координат), входящих в шаблон.
  2. Прямоугольные (включая квадратные) – описываются горизонтальным и вертикальным (для квадратного одним горизонтальным) размерами прямоугольника (квадрата) с центром в начале координат.
  3. Шаблоны в виде круга – описываются диаметром круга с центром в начале координат.
  4. Шаблоны в виде ромба – описываются длиной диагонали ромба с центром в начале координат.
  5. Дополнительные шаблоны – наклонные линии и уголки.

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

наверх

Ранговые операции

Термины и определения

Вариационным рядом по множеству точек 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)zH(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) = AP,
Stat(A, S(P), |P|-1) = AP.

Переменной порядковой статистикой 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 - вещественное число, 0p1: здесь 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-окрестности можно выразить следующим образом:

    CUT(P) =

    A(x,y), vP(L)A(x,y)vP(H),
    vP(L), A(x,y) < vP(L),
    vP(H), A(x,y) > vP(H).

    В качестве рангов 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-(AW), где
      W = Perc(A, LH(A,L,H,P), 50+l/2) – операция процентиль.
      Другими словами выделяет те области исходного изображения, в пределах LH-окрестности которых есть более светлые участки, а остальные наоборот, скрывает.
    • Внутренний
      O = W-(AW), где
      W = Perc(A, LH(A,L,H,-P), 50-l/2) – операция процентиль.
      Другими словами выделяет те области исходного изображения, в пределах симметризованной LH-окрестности которых есть более темные участки, а остальные наоборот, скрывает.
    • Сильный
      O = ((AW2)-A)(A-(AW1)), где
      W1 = Perc(A, LH(A,L,H,P), 50-l/2),
      W2 = Perc(A, LH(A,L,H,P), 50+l/2) .
    • Слабый
      O = ((AW2)-A)(A-(AW1)), где
      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)-окрестности исходного изображения.

наверх

Прочие операции

Операции этого типа не относятся ни к одному из трех предыдущих типов операций.

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

наверх

Подробную информацию об интересующем продукте Вы можете получить, заполнив бланк заказа
 

© SIAMS, 2008