Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

fitgeotform2d

Ajustar una transformación geométrica 2D a pares de puntos de control

Desde R2022b

    Descripción

    ejemplo

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

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

    tform = fitgeotform2d(movingPoints,fixedPoints,"pwl") ajusta una transformación lineal a trozos 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 = fitgeotform2d(movingPoints,fixedPoints,"lwm",n) ajusta una transformación de la media ponderada local 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. La función usa los n puntos más cercanos 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")

    Figure contains an axes object. The axes object contains an object of type image.

    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 de similitud que se pueda 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)

    Figure contains an axes object. The axes object contains an object of type image.

    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 "similarity", "reflectivesimilarity", "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.

    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 un n bajo puede generar polinomios mal condicionados.

    Argumentos de salida

    contraer todo

    Transformación geométrica, devuelta como objeto de transformación geométrica, tal y como se indica en la tabla.

    Tipo de transformación

    Objeto de transformación geométrica
    "similarity"simtform2d
    "reflectivesimilarity"affinetform2d
    "affine"affinetform2d
    "projective"projtform2d
    "polynomial"PolynomialTransformation2D
    "pwl"PiecewiseLinearTransformation2D
    "lwm"LocalWeightedMeanTransformation2D

    Más acerca de

    contraer todo

    Tipos de transformación

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

    Tipo de transformación

    DescripciónNúmero mínimo de pares de puntos de controlEjemplo
    "similarity"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 escalado isotrópico. Las líneas rectas siguen siendo rectas y las paralelas siguen en paralelo.2

    Image transformed using "similarity".

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

    Image transformed using "reflectivesimilarity".

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

    Image transformed using "affine".

    "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

    Image transformed using "projective".

    "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)

    Image transformed using "polynomial".

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

    Image transformed using "pwl".

    "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)

    Image transformed using "lwm".

    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 R2022b

    expandir todo