PolynomialTransformation2D

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

Описание

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

Создание

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

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

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

Описание

пример

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

Примеры

свернуть все

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

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

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