exponenta event banner

PolynomialTransformation2D

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

Описание

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

Создание

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

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

  • 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