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