Шаг 2: Исследование отображения изображений с помощью линий сетки, окружностей и т.п
Когда преобразования задаются с помощью функции maketform, тогда для трансформации правильных геометрических объектов можно применить функцию tformfwd (особенно, для прямоугольной сетки и равномерного массива окружностей). В этом примере рассматриваются однозначные преобразования, поскольку одной исходной точке соответствуют две преобразованные. Таким образом, обработку исходных данных можно производить двумя различными функциями.
Когда принять, что w=(z+1/z)/2 или представить это в другом виде (z^2+2*w*z+1=0), тогда z=w+/sqrt(w^2-1).
Получение положительного и отрицательного квадратного корня приводит к необходимости разделения процесса преобразований. Покажем применение и управление функцией maketform в первом варианте:
Функция: Forward1.m |
function X=Forward1( U, t ) W=complex(U(:, 1),U(:, 2)); Z=W+sqrt(W.^2-1);X(:, 2)=imag(Z); X(:, 1)=real(Z); |
Возможен другой способ построения преобразований:
Функция: Forward2.m |
function X=Forward1( U, t ) W=complex(U(:, 1),U(:, 2)); Z=W-sqrt(W.^2-1);X(:, 2)=imag(Z); X(:, 1)=real(Z); |
Функция ipex005 создает типичные объекты TFORM с возможностью ее ручного управления
t1=maketform('custom', 2, 2, @Forward1, [], []);
t2=maketform('custom', 2, 2, @Forward2, [], []);
и использования вместе с tformfwd для преобразования объектов типа сетка из линий и массив окружностей.
Четыре изображения внизу демонстрируют работу функции ipex005. В первом случае это изображение типа сетка из линий и во втором случае - это массив окружностей:
Программный источник функции ipex005 размещается в matlabroot/toolbox/images/imdemos/ipex005.m.
ipex005(A,uData,vData,B,xData,yData)
До начала преобразований сетка из линий представляет собой квадранты, окрашенные в соответствующий цвет. Полезность такого окрашивания квадрантов особенно ценна после проведения соответствующих преобразований. С их помощью на результирующем изображении четко видно проведенные пространственные изменения. Отметим, что каждый квадрант условно подвергается двухэтапным преобразованиям - во внутренней стороне окружности и внешней стороне окружности. Разные части квадранта подвергаются различной степени искажений.
Равномерная сетка, состоящая из окружностей одинакового размера, преобразуется в окружности, которые упакованы в соответствии тангенциальной зависимостью. При таком виде преобразований положительные значения преобразований отображаются зеленым цветом, а отрицательные - синим и определяются как . Также отметим, что при преобразованиях нелинейно изменяется диаметр окружности.
Графика MATLAB позволяет удобно отображать сдвиг и масштабирование локальных объектов преобразованного изображения. Использование полупрозрачного режима отображения позволяет наглядно понять суть проводимых преобразований. Наибольшим искажениям подвергаются объекты, размещенные в центральной части изображения. Более детально это представлено на двух верхних рисунках.