Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткий курс теории обработки изображений.doc
Скачиваний:
32
Добавлен:
01.07.2025
Размер:
8 Мб
Скачать
☆

Изображение 2: Применение линейных конформных преобразований.

Линейные конформные преобразования могут включать поворот, масштабирование и сдвиг. Очертания и углы остаются постоянными. Параллельные линии остаются параллельными, прямые линии остаются прямыми.

Для линейных конформных преобразований: [u v]=[ x y 1] T.

Параметр T представляет собой матрицу с размерностью 3x2, которая зависит от четырех параметров.

% Четыре параметра.

scale=1.2; % коэффициент масштабирования

angle=40*pi/180; % угол поворота

tx=0; % сдвиг по x

ty=0; % сдвиг по y

sc=scale*cos(angle);

ss=scale*sin(angle);

T=[ sc -ss;

ss sc;

tx ty];

Далее линейные конформные преобразования используются как подмножество аффинных преобразований.

После этого создается структура TFORM:

t_lc=maketform('affine', T);

I_linearconformal=imtransform(I, t_lc, 'FillValues', .3);

subplot(332)

imshow(I_linearconformal);

title('linear conformal')

Что касается сдвига, то когда изменения в одном из направлений tx или ty отличны от нуля, то это не влияет на результирующее изображение. Чтобы увидеть координаты, которые соответствуют нашим преобразованиям, включая сдвиг, нужно провести следующие вычисления: [I_linearconformal, xdata, ydata]=imtransform(I, t_lc, 'FillValues', .3); figure, imshow(xdata, ydata, I_linearconformal), axis on Отметим, что параметры xdata и ydata соответствуют сдвигу. Для описания той части изображения, которую нужно рассмотреть (проанализировать), в функции imtransform используются параметры 'XData' и 'YData'. Изображение 3: Применение аффинных преобразований. При аффинных преобразованиях размерности x и y можно масштабировать или вырезать при сдвиге. Параллельные линии остаются параллельными, прямые линии остаются прямыми. Линейные конформные преобразования являются подмножеством аффинных преобразований.

Выражение для аффинных преобразований аналогично выражению для линейных конформных преобразований: [u v]=[ x y 1] T. Параметр T представляет собой матрицу 3x2 с шестью различными элементами. T=[1 0.1;     1 1;    0 0]; t_aff=maketform('affine', T); I_affine=imtransform(I, t_aff, 'FillValues', .3); subplot(333) imshow(I_affine) title('affine')

Изображение 4: Применение проекционных преобразований.

При проекционных преобразованиях четырехугольник остается четырехугольником. Прямые линии остаются прямыми линиями. Аффинные преобразования являются подмножеством проекционных преобразований. Для проекционных преобразований: [up vp wp]=[x y w] T, где

u = up / wp v = vp / wp.

Параметр T представляет собой матрицу с размерностью 3x3 с девятью различными элементами.

T = [A D G         B E H         C F I]

Что касается матричных преобразований, то эквивалентными являются два выражения:

u = (Ax + By + C) / (Gx + Hy + 1) v = (Dx + Ey + F) / (Gx + Hy + 1)

T=[1 0 0.008;

1 1 0.01;

0 0 1];

t_proj=maketform('projective', T);

I_projective=imtransform(I, t_proj, 'FillValues', .3);

subplot(334)

imshow(I_projective)

title('projective')