Аффинная и проективная трансформации

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

В данном методе задача преобразования старых координат точки (X,Y) в новые координаты (X',Y') сводится к нахождению таких коэффициентов a1,...,an, b1,...,bn аппроксимирующего полинома, при которых минимизируется сумма квадратов отклонений заданных значений от построенной аппроксимирующей кривой:

Для аффинной трансформации:

X'= a1X + a2Y + a3

Y'= b1X + b2Y + b3

требуется задание не менее 3-х пар точек трансформации.

Аффинная трансформация

Рисунок 105. Аффинная трансформация


Для выполнения аффинной трансформации растрового объекта:

  1. Сделайте растровой слой редактируемым ().

  2. Нажмите на панели инструментов Редактор кнопку Трансформация слоя с экрана (). Курсор примет вид .

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

  4. Аналогичным образом укажите следующую точку (куда надо переместить). Она отобразится в виде окружности.

  5. Повторите действия 3,4 для второй и третьей пар точек.

  6. В рабочей области карты щелкните правой кнопкой мыши и выберите в появившемся контекстном меню пункт Аффинное (1 степени). Над растровым объектом будет соответствующее заданным точкам аффинное преобразование.

Для проективной трансформации полиномами 2-й степени:

X'= a1X2 + a2XY + a3Y2 + a4X + a5Y + a6

Y'= b1X2 + b2XY + b3Y2 + b4X + b5Y + b6

требуется задание не менее 6-и пар точек трансформации.

Проективная трансформация полиномами 2-й степени.

Рисунок 106. Проективная трансформация полиномами 2-й степени.


Для выполнения проективной трансформации 2-й степени растрового объекта:

  1. Сделайте растровой слой редактируемым ().

  2. Нажмите на панели инструментов Редактор кнопку Трансформация слоя с экрана (). Курсор примет вид .

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

  4. Аналогичным образом укажите следующую точку (куда надо переместить). Она отобразится в виде окружности.

  5. Повторите действия 3,4 еще для пяти пар точек.

  6. В рабочей области карты щелкните правой кнопкой мыши и выберите в появившемся контекстном меню пункт Проективное (2 степени). Над растровым объектом будет произведено соответствующее заданным точкам проективное преобразование 2 степени.