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

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

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

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

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

X' = a1X + a2Y + a3

Y' = b1X + b2Y + b3

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

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

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

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

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

  5. Точно таким же образом укажите еще две пары точек.

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

Рисунок 290.


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

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

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

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

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

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

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

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

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

  5. Точно таким же образом укажите еще пять пар точек.

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

Рисунок 291.