1/15 Předzpracování v prostoru obrazů Geometrické transformace Václav Hlaváč, Jan Kybic Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/ hlavac
GEOMETRICKÉ TRANSFORMACE 2/15 Použití pro zvětšování, posouvání, pootáčení, zkosení 2D obrazů (tj. podle předem známé transformace). odstraňování geometrických zkreslení (geometrická transformace se často hledá z obrazů). Stejné techniky se používají v počítačové grafice.
GEOMETRICKÉ TRANSFORMACE VE 2D 3/15 Rozepíšeme vektorovou transformaci T do dvou složek x = T (x) x = T x (x, y), y = T y (x, y).
TRANSFORMACE SOUŘADNIC + INTERPOLACE 4/15 Transformace souřadnic bodů počítá se nová poloha každého bodu ve spojitých souřadnicích (reálná čísla). x = T (x) Aproximace jasové funkce z neceločíselných pozic x, y hledá hodnotu jasu v celočíselných pozicích Problémy: Někdy x mimo obraz. Interpolace z neuspořádaných (scattered) dat je těžká úloha.
DUÁLNÍ VYJÁDŘENÍ APROXIMACE 5/15 Souřadnice bodů (x, y) ve vstupním obraze lze vypočítat invertováním vztahu (x, y ) = T (x, y), tj. (x, y) = T 1 (x, y ). Aproximuje se jas ve vstupním obraze, který odpovídá jasu hledaného bodu x, y ve výstupní mřížce. Interpolace z uspořádaných dat (pravoúhlá síť) je lehká úloha.
TRANSFORMACE SOUŘADNIC BODŮ 6/15 Obvykle se x = T x (x, y), y = T y (x, y) aproximuje polynomem m-tého stupně. x = m r=0 m r k=0 a rk x r y k, y = m r=0 m r k=0 b rk x r y k. Vztah je lineární vzhledem ke koeficientům a rk, b rk odhad metodou nejmenších čtverců. Potřebné dvojice sobě odpovídajících (vlícovacích/klíčových) bodů x, y a x, y.
BILINEÁRNÍ, AFINNÍ TRANSFORMACE SOUŘADNIC Když se geometrická transformace v závislosti na pozici v obraze příliš náhle nemění, postačují aproximační polynomy nízkého stupně m = 2 nebo m = 3. Bilineární transformace x = a 0 + a 1 x + a 2 y + a 3 xy, y = b 0 + b 1 x + b 2 y + b 3 xy. Ještě speciálnější je afinní transformace která zahrnuje v praxi potřebnou rotaci, translaci a zkosení. x = a 0 + a 1 x + a 2 y, y = b 0 + b 1 x + b 2 y. 7/15
HOMOGENNÍ SOUŘADNICE ZÁPIS MATICEMI 8/15 Homogenní souřadnice jsou obvyklé v teoretické mechanice, projektivní geometrii, počítačové grafice a robotice. Základní myšlenkou je reprezentovat bod ve vektorovém prostoru o jednu dimenzi větším. Bod [x, y]t se v homogenních souřadnicích vyjádří ve 3D vektorovém prostoru jako [λx, λy, λ] T, kde λ 0. Pro jednoduchost se obvykle používá jedno z nekonečně mnoha vyjádření [x, y, 1] T.
AFINNÍ TRANSFORMACE MATICOVĚ 9/15 Affinní zobrazení se po zavedení homogenních souřadnic vyjádří x a 1 a 2 a 0 x y = b 1 b 2 b 0 y. 1 0 0 1 1 Po částech afinní transformace.
APROXIMACE JASOVÉ FUNKCE 10/15 Transformované souřadnice x, y leží mimo rastr. Máme jen informaci o vstupním obraze f (x, y) v celočíselných vzorcích. Také geometricky transformovaný obraz se má reprezentovat maticí. Proto i zde máme předepsanou pravoúhlou vzorkovací mřížku. Příklad: topografická představa. Principiálně správnou odpověď poskytuje teorie aproximace. Ze vzorků odhadneme spojitou funkci. Obvykle se aproximuje polynomem.
INTERPOLACE JAKO 2D KONVOLUCE 11/15 Vzorkovaná verze g s (l x, k y) spojité funkce f (x, y). Interpolace spojitá f n (x, y) aproximující f. Linearita + nezávislost na posunutí (LTI) konvoluce. f n (x, y) = g s (l x, k y) h n (x l x, y k y). l= k= h n je interpolační jádro, obvykle malé pokrytí (support).
APROXIMACE NEJBLIŽŠŠÍ SOUSED 12/15 Přiřadí bodu (x, y) hodnotu jasu nejbližšího bodu g s v diskrétní mřížce. f 1 (x, y) = g s (round (x), round (y)). P0 - po částech konstantní.
LINEÁRNÍ INTERPOLACE 4 body v okolí (x, y), lineární kombinace. Vliv každého ze čtyř bodů klesá se vzdáleností. f 2 (x, y) = (1 a)(1 b) g s (l, k) + a(1 b) g s (l + 1, k) +b(1 a) g s (l, k + 1) + ab g s (l + 1, k + 1), kde l = round (x), a = x l, k = round (y), b = y k. 13/15 P1 - po částech lineární.
BIKUBICKÁ INTERPOLACE Lokálně interpolován obrazovou funkci bikubickým polynomem z 16 bodů v okolí. 1D interpolační jádro (pro přehledné zobrazení) h 3 = 1 2 x 2 + x 3 pro 0 x < 1, 4 8 x + 5 x 2 x 3 pro 1 x < 2, 0 jinde. 14/15
SINC INTERPOLACE 15/15 Bandlimited (frekvenčně omezený) signál f, supp ˆ f [ F s /2, F s /2], f L 2 Jednoznačně určený svými vzorky f (i/f s ): f (x) = sinc(τ ) = sin(πτ ) πτ i f (i/f s ) sinc(f s x n) Interpolační jádro sinc není kompaktní výpočetně náročné. Někdy lze počítat pomocí FFT (zero-padding).