Main Content

maketform

Crear estructura de transformación espacial ( )TFORM

no se recomienda.maketform Utilice , , , o en su lugar.fitgeotransaffine2daffine3dprojective2d

Descripción

ejemplo

T = maketform('affine',A) crea una estructura de transformación espacial multidimensional para una transformación afín de la dimensión N. es una matriz real no singular (N+1)-por-(N+1) o (N+1)-por-N.TUn Si es (N+1)-by-(N+1), la última columna de debe ser .UnUn[zeros(N,1);1] De lo contrario, se aumenta automáticamente, de modo que su última columna sea .Un[zeros(N,1);1] La matriz define una transformación hacia delante de tal forma que , donde es un vector 1 por N, devuelve un vector 1 por N, de tal forma que . tiene transformaciones tanto hacia adelante como hacia la inversa.Untformfwd(U,T)UXX = U * A(1:N,1:N) + A(N+1,1:N)T

Una estructura de transformación espacial (denominada estructura) que se puede utilizar con las funciones , , , o .TFORMtformfwdtforminvfliptformimtransformtformarray

T = maketform('affine',U,X) crea una estructura para una transformación afín bidimensional que asigna cada fila de la fila correspondiente de .TFORMTUX Los argumentos y son cada 3 por 2 y definen las esquinas de los triángulos de entrada y salida.UX Las esquinas no pueden ser colineales.

T = maketform('projective',A) crea una estructura para una transformación proyectiva dimensional N. es una matriz real no singular (N+1)-por-(N+1). no puede ser 0.TFORMUnA(N+1,N+1) La matriz define una transformación hacia delante de tal forma que , donde es un vector 1 por N, devuelve un vector 1 por N, tal que , donde , donde .Untformfwd(U,T)UXX = W(1:N)/W(N+1)W = [U 1] * A La estructura de transformación tiene transformaciones hacia adelante e inversas.T

T = maketform('projective',U,X) crea una estructura para una transformación proyectiva bidimensional que asigna cada fila de la fila correspondiente de .TFORMTUX Los argumentos y son cada 4 por 2 y definen las esquinas de los cuadriláteros de entrada y salida.UX No hay tres esquinas pueden ser colineales.

T = maketform('custom',NDIMS_IN,NDIMS_OUT,FORWARD_FCN,INVERSE_FCN,TDATA) crea una estructura personalizada basada en los identificadores y parámetros de función proporcionados por el usuario. y son los números de dimensiones de entrada y salida. y son manejadores de funciones para reenviar e invertir funciones.TFORMTNDIMS_INNDIMS_OUTFORWARD_FCNINVERSE_FCN La función forward debe admitir la sintaxis siguiente: .X = FORWARD_FCN(U,T) La función inversa debe admitir la sintaxis siguiente: .U = INVERSE_FCN(X,T) En estas sintaxis, es una matriz -por- cuyas filas son puntos en el espacio de entrada de transformación. es una matriz -por- cuyas filas son puntos en el espacio de salida de transformación.UPNDIMS_INXPNDIMS_OUT El argumento puede ser cualquier matriz y normalmente se utiliza para almacenar parámetros de la transformación personalizada.TDATAMATLAB® Es accesible y a través del campo de .FORWARD_FCNINVERSE_FCNtdataT Puede estar vacío o estar vacío, aunque al menos debe definirse para usar con o .FORWARD_FCNINVERSE_FCNINVERSE_FCNTtformarrayimtransform

T = maketform('box',tsize,LOW,HIGH) O
T = maketform('box',INBOUNDS, OUTBOUNDS) construye una estructura afín en n-dimensionales.TFORMT El argumento es un vector de elemento N de enteros positivos. y también son vectores de elementos N.tsizeLOWHIGH La transformación asigna un cuadro de entrada definido por las esquinas opuestas y , o por esquinas y , a un cuadro de salida definido por las esquinas opuestas y o . y debe ser diferente a menos que sea 1, en cuyo caso se supone que el factor de escala afín a lo largo de la dimensión Kth es 1.0.ones(1,N)tsizeINBOUNDS(1,:)INBOUND(2,:)LOWHIGHOUTBOUNDS(1,:)OUTBOUNDS(2,:)LOW(K)HIGH(K)tsize(K) Del mismo modo, y debe ser diferente a menos que y sean los mismos, y por el contrario.INBOUNDS(1,K)INBOUNDS(2,K)OUTBOUNDS(1,K)OUTBOUNDS(2,K) Normalmente se utiliza para registrar los subíndices de fila y columna de una imagen o matriz en algún sistema de coordenadas universales.'box'TFORM

T = maketform('composite',T1,T2,...,TL) O
T = maketform('composite', [T1 T2 ... TL]) construye una estructura cuyas funciones directas e inversas son las composiciones funcionales de las funciones delanteras e inversas de .TFORMTT1, T2, ..., TL

Las entradas se ordenan tal como lo harían cuando se utiliza la notación estándar para la composición de la función:T1, T2, ..., TLT = T1 T2 ... y tenga en cuenta también que la composición es asociativa, pero no conmutativa.TL Esto significa que para aplicar a la entrada, uno debe aplicar primero y último.TUTLT1 Por lo tanto, si , por ejemplo, entonces es lo mismo que .L = 3tformfwd(U,T)tformfwd(tformfwd(tformfwd(U,T3),T2),T1) Los componentes a través deben ser compatibles en términos de los números de dimensiones de entrada y salida. tiene una función de transformación directa definida sólo si todas las transformaciones de componentes han definido funciones de transformación directa. tiene una función de transformación inversa definida sólo si todas las funciones de componente han definido funciones de transformación inversa.T1TLTT

Ejemplos

contraer todo

Cree una estructura de transformación (TFORM) que defina una transformación afín.

T = maketform('affine',[.5 0 0; .5 2 0; 0 0 1]) 
T =     struct with fields:         ndims_in: 2       ndims_out: 2     forward_fcn: @fwd_affine     inverse_fcn: @inv_affine           tdata: [1×1 struct] 

Aplique la transformación hacia delante.

tformfwd([10 20],T) 
ans =      15    40 

Lea una imagen en el espacio de trabajo y muéstrala.

I = imread('cameraman.tif');  imshow(I), 

Aplique la transformación a la imagen.

I2 = imtransform(I,T); 

Muestre la imagen original y la imagen transformada.

figure, imshow(I2)

Argumentos de entrada

contraer todo

Matriz de transformación, especificada como una matriz no singular, real (N+1)-by-(N+1) o (N+1)-by-N.

Tipos de datos: double

Esquinas, especificadas como una matriz de 3 por 2 (para transformaciones afines) o una matriz 4 por 2 (para transformaciones proyectivas). Las matrices definen las esquinas de triángulos (para transformaciones afines) o cuadrangulares (para transformaciones proyectivas).

Tipos de datos: double

Número de dimensiones de entrada y salida, especificadas como escalares.

Tipos de datos: double

Funciones directas e inversas, especificadas como identificadores de función.

Tipos de datos: function_handle

Parámetros de transformación personalizada, especificados como una matriz.

Tipos de datos: double

Tamaño del cuadro de entrada, especificado como un vector de elemento n de enteros positivos.

Tipos de datos: double

Esquinas del cuadro de salida, especificado como un vector de elemento n.

Tipos de datos: double

Funciones directas e inversas, especificadas como identificadores de función.

Tipos de datos: function_handle

Argumentos de salida

contraer todo

Estructura de transformación espacial multidimensional, devuelta como una estructura de transformación (TFORM).

Sugerencias

  • Una transformación afín o proyectiva también se puede expresar como esta ecuación, para un 3 por 2 :Un

    [X Y]'  =  A' * [U V 1] '  

    O, como esta ecuación, para un 3 por 3 :Un

    [X Y 1]'  =  A' * [U V 1]'
Introducido antes de R2006a