Создайте пространственную структуру преобразования (TFORM
)
maketform
не рекомендуется. Использовать fitgeotrans
, affine2d
, affine3d
, или projective2d
вместо этого.
создает многомерную пространственную структуру преобразования T
= maketform('affine',A
)T
для N-мерного аффинного преобразования. A
является несингулярной действительной (N + 1) -by- (N + 1) или (N + 1) -by-N матрицей. Если A
is (N + 1) -by- (N + 1), последний столбец A
должен быть [zeros(N,1);1]
. В противном случае A
автоматически увеличивается таким образом, чтобы последний столбец был [zeros(N,1);1]
. Матрица A
определяет прямое преобразование, такое что tformfwd(U,T)
, где U
является вектором- 1-by-N, возвращает вектор- 1-by-N X
, таким образом X = U * A(1:N,1:N) + A(N+1,1:N)
. T
имеет как прямое, так и обратное преобразования.
Пространственная структура преобразования (называемая a TFORM
struct), который можно использовать с tformfwd
, tforminv
, fliptform
, imtransform
, или tformarray
функций.
создает T
= maketform('projective',A
)TFORM
struct для N-мерного проективного преобразования. A
является несингулярной вещественной (N + 1) -by- (N + 1) матрицей. A(N+1,N+1)
не может быть 0. Матрица A
определяет прямое преобразование, такое что tformfwd(U,T)
, где U
является вектором- 1-by-N, возвращает вектор- 1-by-N X
, таким образом X = W(1:N)/W(N+1)
, где W = [U 1] * A
. Структура преобразования T
имеет как прямое, так и обратное преобразования.
создает пользовательскую T
= maketform('custom',NDIMS_IN,NDIMS_OUT
,FORWARD_FCN,INVERSE_FCN
,TDATA
)TFORM
struct 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
матрица, строки которой являются точками в выходном пространстве преобразования. The 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-мерный аффин TFORM
struct T
. The 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, в этом случае коэффициент аффинной шкалы по K-й размерности принимается равным 1,0. Точно так же INBOUNDS(1,K)
и INBOUNDS(2,K)
должно быть другим, если только OUTBOUNDS(1,K)
и OUTBOUNDS(2,K)
те же самые, и наоборот. The 'box'
TFORM
обычно используется для регистрации строки и столбца индексов изображения или массива в некоторой мировой системе координат.
илиT
= maketform('composite',T1,T2,...,TL
)
T = maketform('composite', [T1 T2 ... TL])
создает TFORM
struct 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
имеет определенную функцию обратного преобразования, только если все функции компонента имеют заданные функции обратного преобразования.
Аффинное или проективное преобразование также может быть выражено как это уравнение для A
3 на 2:
[X Y]' = A' * [U V 1] '
Или, как это уравнение, для A
3 на 3:
[X Y 1]' = A' * [U V 1]'
fliptform
| imtransform
| tformarray
| tformfwd
| tforminv