Шаг 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)

Шаг 2: Исследование отображения изображений с помощью линий сетки, окружностей и т.п - student2.ru

До начала преобразований сетка из линий представляет собой квадранты, окрашенные в соответствующий цвет. Полезность такого окрашивания квадрантов особенно ценна после проведения соответствующих преобразований. С их помощью на результирующем изображении четко видно проведенные пространственные изменения. Отметим, что каждый квадрант условно подвергается двухэтапным преобразованиям - во внутренней стороне окружности и внешней стороне окружности. Разные части квадранта подвергаются различной степени искажений.

Шаг 2: Исследование отображения изображений с помощью линий сетки, окружностей и т.п - student2.ru

Равномерная сетка, состоящая из окружностей одинакового размера, преобразуется в окружности, которые упакованы в соответствии тангенциальной зависимостью. При таком виде преобразований положительные значения преобразований отображаются зеленым цветом, а отрицательные - синим и определяются как Шаг 2: Исследование отображения изображений с помощью линий сетки, окружностей и т.п - student2.ru . Также отметим, что при преобразованиях нелинейно изменяется диаметр окружности.

Шаг 2: Исследование отображения изображений с помощью линий сетки, окружностей и т.п - student2.ru

Шаг 2: Исследование отображения изображений с помощью линий сетки, окружностей и т.п - student2.ru

Графика MATLAB позволяет удобно отображать сдвиг и масштабирование локальных объектов преобразованного изображения. Использование полупрозрачного режима отображения позволяет наглядно понять суть проводимых преобразований. Наибольшим искажениям подвергаются объекты, размещенные в центральной части изображения. Более детально это представлено на двух верхних рисунках.

Наши рекомендации