PiecewiseLinearTransformation2D

2-D кусочно-линейное геометрическое преобразование

Описание

A PiecewiseLinearTransformation2D объект инкапсулирует 2-D кусочно-линейное геометрическое преобразование.

Создание

Можно создать PiecewiseLinearTransformation2D объект с использованием следующих методов:

  • fitgeotrans функция, которая оценивает геометрическое преобразование, которое отображает пары управляющих точек между двумя изображениями.

  • The images.geotrans.PiecewiseLinearTransformation2D функция, описанная здесь. Эта функция создает PiecewiseLinearTransformation2D объект с координатами фиксированных точек и движущихся точек.

Описание

пример

tform = images.geotrans.PiecewiseLinearTransformation2D(movingPoints,fixedPoints) создает PiecewiseLinearTransformation2D объект задал координаты контрольной точки в movingPoints и fixedPoints, которые задают совпадающие контрольные точки в движущихся и фиксированных изображениях, соответственно.

Входные параметры

расширить все

x - и y - координаты контрольных точек в движущемся изображении, заданные как матрица m -by-2. Количество m управляющих точек должно быть больше или равно n.

Типы данных: double | single

x - и y - координаты контрольных точек в фиксированном изображении, заданные как матрица m -by-2. Количество m управляющих точек должно быть больше или равно n.

Типы данных: double | single

Свойства

расширить все

Размерность геометрического преобразования как для входной, так и для выходной точек, заданная как значение 2.

Функции объекта

outputLimitsНахождение выходных пространственных пределов заданных входных пространственных пределов
transformPointsInverseПрименить обратное геометрическое преобразование

Примеры

свернуть все

Аппроксимация кусочно-линейного преобразования к набору фиксированных и движущихся управляющих точек, которые фактически связаны одним глобальным аффин2d преобразованием по всей области.

Создайте 2D аффинное преобразование.

theta = 10;
tformAffine = affine2d([cosd(theta) -sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1])
tformAffine = 

  affine2d with properties:

                 T: [3x3 double]
    Dimensionality: 2

Произвольно выбирайте 6 пар контрольных точек.

fixedPoints = [10 20; 10 5; 2 3; 0 5; -5 3; -10 -20];

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

movingPoints = transformPointsForward(tformAffine,fixedPoints)
movingPoints =

   13.3210   17.9597
   10.7163    3.1876
    2.4906    2.6071
    0.8682    4.9240
   -4.4031    3.8227
  -13.3210  -17.9597

Оцените кусочно-линейное преобразование, которое отображает movingPoints на fixedPoints.

tformPiecewiseLinear = images.geotrans.PiecewiseLinearTransformation2D(movingPoints,fixedPoints)
tformPiecewiseLinear = 

  PiecewiseLinearTransformation2D with properties:

    Dimensionality: 2

Проверьте подгонку PiecewiseLinearTransformation2D объект в контрольных точках.

movingPointsComputed = transformPointsInverse(tformPiecewiseLinear,fixedPoints);
 
errorInFit = hypot(movingPointsComputed(:,1)-movingPoints(:,1),...
                   movingPointsComputed(:,2)-movingPoints(:,2))
errorInFit =

   1.0e-15 *

         0
         0
    0.4441
         0
         0
         0
Введенный в R2013b