images.geotrans. PolynomialTransformation2D

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

Описание

Объект PolynomialTransformation2D инкапсулирует 2D полиномиальное геометрическое преобразование.

Создание

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

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

  • Функция images.geotrans.PolynomialTransformation2D описана здесь. Эта функция создает объект PolynomialTransformation2D с помощью координат фиксированных точек и перемещая точки или известные полиномиальные коэффициенты для прямого и обратного преобразования.

Синтаксис

tform = images.geotrans.PolynomialTransformation2D(movingPoints,fixedPoints,degree)
tform = images.geotrans.PolynomialTransformation2D(a,b)

Описание

пример

tform = images.geotrans.PolynomialTransformation2D(movingPoints,fixedPoints,degree) создает объект PolynomialTransformation2D и устанавливает свойство Degree. Функция оценивает полиномиальные коэффициенты A и B из матриц movingPoints и fixedPoints, которые задают совпадающие контрольные точки в перемещении и зафиксированных изображениях, соответственно.

tform = images.geotrans.PolynomialTransformation2D(a,b) создает объект PolynomialTransformation2D и устанавливает свойства A и B.

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

развернуть все

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

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

x - и y - координаты контрольных точек в фиксированном изображении, заданном как m-by-2 матрица.

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

Свойства

развернуть все

Полиномиальные коэффициенты раньше определяли U в обратном преобразовании, заданном как n - вектор элемента. Для полиномов степени 2, 3, и 4, n равняется 6, 10, и 15, соответственно.

Квадратичное (степень 2) полиномиальный вектор коэффициентов A упорядочено можно следующим образом:

U = A(1) + A(2).*X + A(3).*Y + A(4).*X.*Y + A(5).*X.^2 + A(6).*Y.^2

Кубическое (степень 3) полиномиальный вектор коэффициентов добавляет эти условия:

... + A(7).*X.^2.*Y + A(8).*X.*Y.^2 + A(9).*X.^3 + A(10).*Y.^3

Биквадратное (степень 4) полиномиальный вектор коэффициентов добавляет эти условия:

... + A(11).*X.^3.*Y + A(12).*X.^2.*Y.^2 + A(12).*X.*Y.^3 + A(14).*X.^3 + A(15).*Y.^4

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

Полиномиальные коэффициенты раньше определяли V в обратном преобразовании, заданном как n - вектор элемента. Для полиномов степени 2, 3, и 4, n равняется 6, 10, и 15, соответственно.

Квадратичное (степень 2) полиномиальный вектор коэффициентов B упорядочено можно следующим образом:

V = B(1) + B(2).*X + B(3).*Y + B(4).*X.*Y + B(5).*X.^2 + B(6).*Y.^2

Кубическое (степень 3) полиномиальный вектор коэффициентов добавляет эти условия:

... + B(7).*X.^2.*Y + B(8).*X.*Y.^2 + B(9).*X.^3 + B(10).*Y.^3

Биквадратное (степень 4) полиномиальный вектор коэффициентов добавляет эти условия:

... + B(11).*X.^3.*Y + B(12).*X.^2.*Y.^2 + B(12).*X.*Y.^3 + B(14).*X.^3 + B(15).*Y.^4

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

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

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

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

outputLimitsНайдите вывод, пространственные данные пределы вводят пространственные пределы
transformPointsInverseПримените обратное геометрическое преобразование

Примеры

свернуть все

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

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

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

Произвольно выберите шесть пар контрольных точек. Второй полином степени требует шести пар контрольных точек.

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

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

movingPoints = transformPointsForward(tformAffine,fixedPoints);

Оцените вторую степень преобразование PolynomialTransformation2D, которое соответствует fixedPoints и movingPoints.

tformPolynomial = images.geotrans.PolynomialTransformation2D(movingPoints,fixedPoints,2);

Проверьте припадок преобразования PolynomialTransformation2D в контрольных точках.

movingPointsEstimated = transformPointsInverse(tformPolynomial,fixedPoints);
errorInFit = hypot(movingPointsEstimated(:,1)-movingPoints(:,1),...
                   movingPointsEstimated(:,2)-movingPoints(:,2))

Больше о

развернуть все

Введенный в R2013b