Создайте пространственную структуру преобразования (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