exponenta event banner

PiecewiseLinearTransformation2D

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

Описание

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

Создание

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

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

  • 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Применение обратного геометрического преобразования

Примеры

свернуть все

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

Создайте аффинное преобразование 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