Deformace rastrových obrázků 1997-2011 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 22
Deformace obrázků - warping mapování textur při 3D zobrazování perspektivní zkreslení, mapování na oblá tělesa oprava geometrického zkreslení při digitalizaci obrazu družicové a letecké snímky, scanování nerovného dokumentu,.. speciální efekty v televizním a lmovém průmyslu, reklamě a DTP Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 22
Matematická terminologie obrazová funkce 2 f: U R R n y U [ ] [ ] f: x, y a1, a2,... a n x poloha bodu v rovině atributy obrazu (barva, průhlednost) Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 22
Diskrétní reprezentace Digitální rastrový obraz: I: 0.. m 1 0.. n 1 R n Digitalizace pomocí filtru d: I i, j = f x, y d x i, y j dx dy f 2 ( ) ( ) ( ) R d vyjadřuje snímací charakteristiku digitalizačního zařízení (fotočidlo, CCD prvek) Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 22
Zobrazení digitálního obrazu Rekonstrukce diskrétního obrazu: r m 1 f x, y = I i, j r i x, j y ( ) ( ) ( ) i= 0 n 1 j= 0 r charakterizuje výstupní zařízení (pulsní odezva, stopa jednoho pixelu,..) Chceme, aby se f r co nejvíce podobala f - v oblasti frekvencí, které se dají zachytit při zvolené hustotě vzorkování (Nyquist) f Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 22
Geometrická transformace y f U g y f x 2 2 g: R R x ( ) f x, y = f g x, y ( ) ( ) ( 1(, ) ) = (, ) f g u v f u v Co s rastrovými obrázky? G I ( ) f If Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 22
Transformace s interpolací digitalizace = vzorkování digitalizační filtr má pouze bodový nosič (Diracův impuls) výpočet atributů (barvy) transformovaného pixelu pomocí interpolace nebo aproximace je potřeba inverzní transformační funkce g -1 zaokrouhlení, polynomiální interpolace v praxi se nejvíce používá bilineární až bikubická interpolace/aproximace Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 22
Interpolace ve zdrojových souřad. i+1 j i i+1 g -1 (u,v) Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 22
Transformace s ltrací odpovídá představě plošného pixelu digitalizační filtr má nosič s nenulovou plochou (např. obdélníkový nebo konický filtr) zdrojové pixely se přenášejí do prostoru výsledného obrázku je potřeba pouze transformační funkce g vhodné i pro kontraktivní transformace při izometrickém zobrazení se obrázek rozmazává velká kontrakce velká výpočetní náročnost Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 22
Transformace s filtrací v+1 v v-1 u-1 u u+1 g(i,j) Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 10 / 22
MIP map (multum in parvo) pyramidální reprezentace zdrojového obrázku (hierarchická reprezentace) předzpracování = před ltrování výhodná zejména při silnější kontrakci úspora času výpočtu při filtracích používá se zejména při mapování textur (mapování na vzdálenější objekty) kompaktní reprezentace v paměti zabírá pouze 4/3 paměti RGB obrázku Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 11 / 22
MIP map G 0 R 0 B 0 G 1 R 1 B 1 G 2 R 2 B 2 Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 12 / 22
Vícekrokové transformace rozložení transformace do několika kroků každý krok operuje pouze na řádcích nebo pouze na sloupcích rychlejší výpočet jednodušší filtrace v řádcích/sloupcích dvě 1D filtrace jsou rychlejší než jedna 2D bottleneck problem - ztráta přesnosti mezivýsledku je-li částečné zobrazení hodně kontraktivní nebo dokonce neinjektivní Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 13 / 22
Otáčení ve dvou krocích [x,y] [u,v] = f(x,y) = [f 1 (x,y),y] [r,s] = g(u,v) = [u,g 1 (u,v)] = [f 1 (x,y),g 1 (f 1 (x,y),v)] f [u,v] g [r,s] Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 14 / 22
Odvození Cílová transformace (otočení o úhel α): r = x cos α y sinα s = x sinα + y cos α První transformace f: u = f x y v = y ( ) 1, Druhá transformace g: [ ] r = u = f x, y s = g u, v = g f x, y, y ( ) ( ) ( ) 1 1 1 1 Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 15 / 22
Odvození Horizontální zkosení v prvním kroku: f x y x y ( ) 1, = cos α sin Vertikální zkosení v druhém kroku: g u v x α y α x α v α ( ) 1, = sin + cos = sin + cos u = f ( ) 1 x, v = x cos α v sinα x = ( u + v sinα ) cos α g u v u v ( ) 1, = tan α + sec α α Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 16 / 22
Tříkrokové otočení Rozklad matice otočení na tři činitele: cos α sinα sinα cos α = = 1 tanα 2 0 1 1 0 sinα 1 1 tanα 2 0 1 vhodné pro úhly otočení π 2 α π 2 Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 17 / 22
Otočení o obecný úhel vícekrokové algoritmy nedávají kvalitní výsledky pro všechny úhly. Vhodné rozsahy α: -45 o α 45 o pro dvoukrokovou metodu -90 o α 90 o pro tříkrokovou metodu pomocné otočení o násobek 90 o jednoduchý výpočet bez nutnosti ltrování a bez ztráty přesnosti Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 18 / 22
Obecná separabilní transformace Separabilní transformace: [ ] ( ( ) ) h x, y = h x, y, h x, y = g f x, y ( ) ( ) ( ) [ f x y y] f x, y =,, ( ) ( ) 1 1 2 [ u g u v ] g u, v =,, ( ) ( ) 1 f x, y = h x, y ( ) ( ) 1 1 ( ) g u, v = h ϕ u, v, v ( ) ( ) 1 2 existuje-li ϕ(u,v), že x = ϕ u, v ( ) Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 19 / 22
Ztráty přesnosti Nevýhodné jsou oblasti s malou hodnotou derivace h ( ) 1 x, y x g ( ) 1 u, v nebo velkou hodnotou derivace v Někde ani nemusí být de nována inverzní funkce ϕ(u,v)! pomůže současné zpracování obrazů I a I T Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 20 / 22
Optimalizovaný algoritmus současné zpracování původního (I) a transponovaného (I T ) obrazu oba obrazy se nezávisle deformují ve dvou krocích (pomocí separabilních transformací h a h T ) výsledek se pixel po pixelu skládá z h(i) a (h T (I T )) T v každém pixelu se porovnávají míry degradace obou výsledných obrazů lze provádět i deformace, které nejsou prosté přehnutí obrázku Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 21 / 22
Konec Další informace: J. Foley, A. van Dam, S. Feiner, J. Hughes: Computer Graphics, Principles and Practice, 815-832 J. Gomes et al.: Warping and Morphing of Graphical Objects, Course Notes - SIGGRAPH 95 Warping 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 22 / 22