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,
або у матричному записі
(x′y′)=(a11a21a21a22)(xy)+(bxby),
де
матриця A=(a11a21a21a22) є невиродженою. Матриця A називається матрицею повороту, а вектор (b1b2) називається вектором паралельного перенесення.
Афінні перетворення переводять паралельні лінії у паралельні, проте можуть не зберігати відстані і кути. Якщо матриця A ортогональна, тобто A⊤⋅A=E, то відповідне афінне перетворення називається ортогональним. Ортогональні перетворення зберігають відстані та кути.
Афінне перетворення також задається в однорідних координатах
(x′y′1)=(a11a21bxa21a22by,001)(xy1).
Важливою характеристикою афінного перетворення є те, що воно має обернене. Якщо відомі матриця повороту та вектор паралельного перенесення, то із перетвореного (деформованого) зображення можна відновити оригінальне зображення.
Всі афінні перетворення зводяться до таких базових перетворень: паралельне перенесення, масштабування - стиснення та розширення, зсув, поворот, центральна та осьова симетрії та їхніх композицій.
Паралельне перенесення має вигляд
(x′y′)=(xy)+(b1b2).
Розтягнення та стиснення вздовж осей Ox та Oy з коефіцієнтами sx i sy (масштaбне перетворення, scaling):
(x′y′)=(sx00sy)(xy).
(гомотетія з центром в початку координат)
При sx=sy отримуємо рівномірне розтягнення та стиснення (uniform scaling).
Зсув (shear) вздовж осей x та y з коефіцієнтами bx i by
(x′y′)=(1bxby1)(xy).
Поворот навколо центру координат на кут θ:
(x′y′)=(cosθ−sinθsinθcosθ)(xy).
Поворот може бути представлений як композиція трьох скосів
(cosθ−sinθsinθcosθ)=(0−tanθ201)⋅(10sinθ1)⋅(0−tanθ201).
Поворот навколо довільної точки площини з координатами (xc,yc) на кут θ:
(x′y′)=(cosθ−sinθsinθcosθ)(x−xcy−yc)+(xcyc).
Симетрії відносно початку координат, осі Ox, Oy і прямої y=x мають такі матриці
(100−1),(−1001),(−100−1).
Якщо матриця афінного перетворення невідома, то її можна відновити, вказавши три відповідні точки на зображеннях, які мають перейти одна в одну при цьому перетворенні.
Немає коментарів:
Дописати коментар