Processing math: 100%

середа, 28 квітня 2021 р.

Афінні перетворення

Mathedemo Геометричним перетворенням зображення f(x,y) називається таке перетворення дискретної площини, при якому піксель з координатами (x,y) переміщується у позицію з новими координатами (x,y). Нові координати визначаються двома функціями для кожної координати: x=Tx(x,y),y=Ty(x,y).
На відміну від градаційних перетворень, геометричні перетворення не змінюють значення пікселів, а лише змінюють положення пікселів на зображенні. Ми розглянемо два типи геометричних перетворень які зберігають об'єкти сцени на перетворених зображеннях -- афінні та проективні.

Афінні перетворення

Афінними називаються лінійні перетворення вигляду x=Tx(x,y)=a11x+a21y+b1,y=Ty(x,y)=a21x+a22y+b2,

або у матричному записі (xy)=(a11a21a21a22)(xy)+(bxby),
де матриця A=(a11a21a21a22) є невиродженою. Матриця A називається матрицею повороту, а вектор (b1b2) називається вектором паралельного перенесення.

Афінні перетворення переводять паралельні лінії у паралельні, проте можуть не зберігати відстані і кути. Якщо матриця A ортогональна, тобто AA=E, то відповідне афінне перетворення називається ортогональним. Ортогональні перетворення зберігають відстані та кути.

Афінне перетворення також задається в однорідних координатах (xy1)=(a11a21bxa21a22by,001)(xy1).

Важливою характеристикою афінного перетворення є те, що воно має обернене. Якщо відомі матриця повороту та вектор паралельного перенесення, то із перетвореного (деформованого) зображення можна відновити оригінальне зображення.

Всі афінні перетворення зводяться до таких базових перетворень: паралельне перенесення, масштабування - стиснення та розширення, зсув, поворот, центральна та осьова симетрії та їхніх композицій.

Паралельне перенесення має вигляд (xy)=(xy)+(b1b2).
Розтягнення та стиснення вздовж осей Ox та Oy з коефіцієнтами sx i sy (масштaбне перетворення, scaling): (xy)=(sx00sy)(xy).
(гомотетія з центром в початку координат) При sx=sy отримуємо рівномірне розтягнення та стиснення (uniform scaling).

Зсув (shear) вздовж осей x та y з коефіцієнтами bx i by (xy)=(1bxby1)(xy).

Поворот навколо центру координат на кут θ: (xy)=(cosθsinθsinθcosθ)(xy).
Поворот може бути представлений як композиція трьох скосів (cosθsinθsinθcosθ)=(0tanθ201)(10sinθ1)(0tanθ201).
Поворот навколо довільної точки площини з координатами (xc,yc) на кут θ: (xy)=(cosθsinθsinθcosθ)(xxcyyc)+(xcyc).
Симетрії відносно початку координат, осі Ox, Oy і прямої y=x мають такі матриці (1001),(1001),(1001).
Якщо матриця афінного перетворення невідома, то її можна відновити, вказавши три відповідні точки на зображеннях, які мають перейти одна в одну при цьому перетворенні.

Немає коментарів:

Дописати коментар