Main Content

fitgeotrans

(No recomendado) Ajustar una transformación geométrica a pares de puntos de control

No se recomienda el uso de fitgeotrans. Utilice la función fitgeotform2d en su lugar. Para obtener más información, consulte Consideraciones relativas a la compatibilidad.

Descripción

ejemplo

tform = fitgeotrans(movingPoints,fixedPoints,tformType) ajusta una transformación geométrica lineal de tipo tformType a los pares de puntos de control movingPoints y fixedPoints.

tform = fitgeotrans(movingPoints,fixedPoints,"polynomial",degree) ajusta un objeto PolynomialTransformation2D a los pares de puntos de control movingPoints y fixedPoints. Especifique el grado de transformación polinómica, que puede ser 2, 3 o 4.

tform = fitgeotrans(movingPoints,fixedPoints,"pwl") ajusta un objeto PiecewiseLinearTransformation2D a los pares de puntos de control movingPoints y fixedPoints. Esta transformación crea una triangulación de Delaunay de los puntos de control fijos y aplica los puntos de control móviles a los puntos de control fijos correspondientes. Una transformación afín diferente aplica los puntos de control en cada región local. La asignación es continua por todos los puntos de control, pero no es diferenciable de manera continua.

tform = fitgeotrans(movingPoints,fixedPoints,"lwm",n) ajusta un objeto LocalWeightedMeanTransformation2D a los pares de puntos de control movingPoints y fixedPoints. La transformación de la media ponderada local crea una aplicación infiriendo un polinomio en cada punto de control usando los puntos de control contiguos. La aplicación en cualquier ubicación depende de la media ponderada de estos polinomios. Los n puntos más cercanos se utilizan para inferir una transformación polinómica de segundo grado para cada par de puntos de control.

Ejemplos

contraer todo

Cree una imagen de damero y gírela para crear una imagen desalineada.

I = checkerboard(40);
J = imrotate(I,30);
imshowpair(I,J,"montage")

Defina algunos puntos de control correspondientes en la imagen fija (damero) y en la imagen variable (el damero rotado). Puede definir puntos de forma interactiva mediante la herramienta de selección de puntos de control.

fixedPoints = [41 41; 281 161];
movingPoints = [56 175; 324 160];

Cree una transformación geométrica afín que se puede utilizar para alinear dos imágenes.

tform = fitgeotform2d(movingPoints,fixedPoints,"similarity");

Utilice la estimación tform para remuestrear la imagen rotada y registrarla con la imagen fija. Las regiones de color (verde y magenta) de la imagen de superposición de color falso indican un error en el registro. Este error se debe a una falta de precisión en la correspondencia de los puntos de control.

Jregistered = imwarp(J,tform,OutputView=imref2d(size(I)));
imshowpair(I,Jregistered)

Argumentos de entrada

contraer todo

Los puntos de control de la imagen variable, especificados como una matriz de m por 2. Cada fila especifica la coordenada (x, y) de un punto de control.

Ejemplo: movingPoints = [11 11; 41 71];

Tipos de datos: double | single

Los puntos de control de la imagen fija, especificados como una matriz de m por 2. Cada fila especifica la coordenada (x, y) de un punto de control.

Ejemplo: fixedPoints = [14 44; 70 81];

Tipos de datos: double | single

Tipo de transformación lineal, especificado como "nonreflectivesimilarity", "similarity", "affine" o "projective". Para obtener más información, consulte Tipos de transformación.

Tipos de datos: char | string

Grado del polinomio, especificado como el entero 2, 3 o 4.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Número de puntos que se desea usar en el cálculo de la media ponderada local, especificado como un entero positivo. n puede ser tan bajo como 6, pero establecer un valor bajo para n conlleva el riesgo de generar polinomios mal acondicionados.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Transformación, devuelta como objeto de transformación geométrica. El tipo de objeto depende del tipo de transformación.

Tipo de transformación

Objeto de transformación geométrica
"nonreflectivesimilarity"affine2d
"similarity"affine2d
"affine"affine2d
"projective"projective2d
"polynomial"PolynomialTransformation2D
"pwl"PiecewiseLinearTransformation2D
"lwm"LocalWeightedMeanTransformation2D

Más acerca de

contraer todo

Tipos de transformación

En esta tabla se enumeran todos los tipos de transformación compatibles con fitgeotrans en orden de complejidad.

Tipo de transformación

DescripciónNúmero mínimo de pares de puntos de controlEjemplo
"nonreflectivesimilarity"Utilice esta transformación cuando las formas de la imagen en movimiento no han variado, pero la imagen está distorsionada por una combinación de traslación, rotación y escala. Las líneas rectas siguen siendo rectas y las paralelas siguen en paralelo. 2

"similarity"Es igual que "nonreflectivesimilarity" con la adición de reflexión opcional.3

"affine"Utilice esta transformación cuando las formas de la imagen en movimiento muestran cizallado. Las líneas rectas siguen siendo rectas y las paralelas siguen en paralelo, pero los rectángulos se convierten en paralelogramos.3

"projective"Utilice esta transformación cuando la escena parece inclinada. Las líneas rectas siguen siendo rectas, pero las paralelas convergen hacia un punto de fuga.4

"polynomial"Utilice esta transformación cuando los objetos de la imagen aparecen curvados. Cuanto mayor sea el orden del polinomio, mejor será el ajuste, pero el resultado puede contener más curvas que la imagen fija.

6 (orden 2)

10 (orden 3)

15 (orden 4)

"pwl"Utilice esta transformación (lineal a trozos) cuando partes de la imagen aparecen distorsionadas de manera distinta.4

"lwm"Utilice esta transformación (media ponderada local) cuando la distorsión varía localmente y la lineal a trozos no es suficiente. 6 (12 recomendado)

Referencias

[1] Goshtasby, Ardeshir. “Piecewise Linear Mapping Functions for Image Registration.” Pattern Recognition 19, no. 6 (January 1986): 459–66. https://doi.org/10.1016/0031-3203(86)90044-0.

[2] Goshtasby, Ardeshir. “Image Registration by Local Approximation Methods.” Image and Vision Computing 6, no. 4 (November 1988): 255–61. https://doi.org/10.1016/0262-8856(88)90016-9.

Capacidades ampliadas

Historial de versiones

Introducido en R2013b

expandir todo