Создайте пространственную структуру преобразования (TFORM
)
maketform
не рекомендуется. Используйте fitgeotrans
, affine2d
, affine3d
или projective2d
вместо этого.
T = maketform('affine',A)
T = maketform('affine',U,X)
T = maketform('projective',A)
T = maketform('projective',U,X)
T = maketform('custom',NDIMS_IN,NDIMS_OUT,FORWARD_FCN,INVERSE_FCN,TDATA)
T = maketform('box',tsize,LOW,HIGH)
T = maketform('box',INBOUNDS, OUTBOUNDS)
T = maketform('composite',T1,T2,...,TL)
T = maketform('composite', [T1 T2 ... TL])
создает многомерное пространственное преобразование structureT
= maketform('affine',A
)T
для N-мерного аффинного преобразования. A
является несингулярным действительным (N+1) (N+1) или (N+1)-by-N матрица. Если A
(N+1) (N+1), последним столбцом A
должен быть [zeros(N,1);1]
. В противном случае A
увеличивается автоматически, такой, что его последним столбцом является [zeros(N,1);1]
. Матричный A
задает прямое преобразование, таким образом, что tformfwd(U,T)
, где U
является вектором 1 на n, возвращает векторный X
1 на n, такой что X = U * A(1:N,1:N) + A(N+1,1:N)
. T
имеет и вперед и обратные преобразования.
Пространственная структура преобразования (названный struct TFORM
), который может использоваться с tformfwd
, tforminv
, fliptform
, imtransform
или функциями tformarray
.
создает struct T
= maketform('projective',A
)TFORM
для N-мерного проективного преобразования. A
является несингулярным действительным (N+1) матрицей (N+1). A(N+1,N+1)
не может быть 0. Матричный A
задает прямое преобразование, таким образом, что tformfwd(U,T)
, где U
является вектором 1 на n, возвращает векторный X
1 на n, такой что X = W(1:N)/W(N+1)
, где W = [U 1] * A
. Структура преобразования T
имеет и вперед и обратные преобразования.
создает пользовательский struct T
= maketform('custom',NDIMS_IN,NDIMS_OUT
,FORWARD_FCN,INVERSE_FCN
,TDATA
)TFORM
T
на основе обеспеченных пользователями указателей на функцию и параметров. NDIMS_IN
и NDIMS_OUT
являются количествами размерностей ввода и вывода. FORWARD_FCN
и INVERSE_FCN
являются указателями на функцию, чтобы передать и обратные функции. Прямая функция должна поддержать следующий синтаксис: X = FORWARD_FCN(U,T)
. Обратная функция должна поддержать следующий синтаксис: U = INVERSE_FCN(X,T)
. В этих синтаксисах U
является P
-by-NDIMS_IN
матрица, строки которой являются точками на входном пробеле преобразования. X
является P
-by-NDIMS_OUT
матрица, строки которой являются точками в преобразовании выходной пробел. Аргумент TDATA
может быть любым массивом MATLAB® и обычно используется, чтобы сохранить параметры пользовательского преобразования. Это доступно для FORWARD_FCN
и INVERSE_FCN
через поле tdata
T
. Или FORWARD_FCN
или INVERSE_FCN
могут быть пустыми, несмотря на то, что, по крайней мере, INVERSE_FCN
должен быть задан, чтобы использовать T
с tformarray
или imtransform
.
илиT
= maketform('box',tsize
,LOW,HIGH
)
T = maketform('box',INBOUNDS, OUTBOUNDS)
создает N-мерный аффинный struct TFORM
T
. Аргумент tsize
является вектором N-элемента положительных целых чисел. LOW
и HIGH
являются также векторами N-элемента. Преобразование сопоставляет поле ввода, заданное противоположными углами ones(1,N)
и tsize
, или углами INBOUNDS(1,:)
и INBOUND(2,:)
, к окну для вывода, заданному противоположными углами LOW
и HIGH
или OUTBOUNDS(1,:)
и OUTBOUNDS(2,:)
. LOW(K)
и HIGH(K)
должны отличаться, если tsize(K)
не равняется 1, в этом случае аффинный масштабный коэффициент по измерению Kth принят, чтобы быть 1.0. Точно так же INBOUNDS(1,K)
и INBOUNDS(2,K)
должны отличаться, если OUTBOUNDS(1,K)
и OUTBOUNDS(2,K)
не являются тем же самым, и с другой стороны. TFORM
'box'
обычно используется, чтобы указать индексы строки и столбца изображения или массива к некоторой системе мировой координаты.
илиT
= maketform('composite',T1,T2,...,TL
)
T = maketform('composite', [T1 T2 ... TL])
создает struct TFORM
T
, чей вперед и обратные функции функциональные составы прямых и обратных функций T1, T2, ..., TL
.
Входные параметры T1, T2, ..., TL
упорядочены, как они были бы при использовании стандартного обозначения для композиции функций: T = T1
T2
... TL
и примечание также, что состав является ассоциативным, но не коммутативным. Это означает, что, чтобы применить T
к входу U
, нужно применить TL
сначала и T1
в последний раз. Таким образом, если L = 3
, например, то tformfwd(U,T)
совпадает с tformfwd(tformfwd(tformfwd(U,T3),T2),T1)
. Компоненты T1
через TL
должны быть совместимыми с точки зрения количеств размерностей ввода и вывода. T
имеет заданное прямое, преобразовывают функцию, только если весь компонент преобразовывает, задали, вперед преобразовывают функции. T
имеет заданную обратную функцию преобразования, только если все функции компонента задали инверсию, преобразовывают функции.
Аффинное или проективное преобразование может также быть выражено как это уравнение, для 3 2 A
:
[X Y]' = A' * [U V 1] '
Или, как это уравнение, для 3х3 A
:
[X Y 1]' = A' * [U V 1]'
fliptform
| imtransform
| tformarray
| tformfwd
| tforminv