Metamorfóza obrázků 1998-2011 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 21
Metamorfóza obrázků - morphing transformace mezi dvěma obrázky spojitá přechodová funkce generování mezi-snímků ( in-betweening ) geometrická deformace (warping) deformace souřadné soustavy obrázku změna obrazové (atributové) funkce barevný přechod jednoho obrázku v druhý Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 21
Schéma zobrazení obrazové souřadnice [x,y] U R 2 [u,v] U R 2 g čas začátek f 0 f 1 konec [R,G,B,..] prostor atributů (barva) Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 21
Interpolace deformační funkce Zavedení časové proměnné do funkce g: g ( x y) t [ x y] t, 0 1,, U R Okrajové podmínky: g x, y = x, y 0 ( ) [ ] g x, y = g x, y = u, v 1 ( ) ( ) [ ] 2 g 0 g 0.5 g 1 Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 21
Interpolace obrazové funkce Obrazová funkce v čase t: [ ( ) ] = ( 1 ) ( ) + ( ) [ ] [ ] ft gt x, y t f0 x, y t f1 g1 x, y 0 t 1, x, y U R 2 může být předpočítáno f 0 f 0.5 f 1 Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 21
Interpolace deformační funkce deformace zadávané sítí interpolují se jednotlivé uzly sítě (trojúhelníková síť, sítě spline křivek) deformace zadané soustavou šipek lineární interpolace koncových bodů šipek interpolace středů šipek, jejich délky a orientace deformace mnohoúhelníku v rovině přechodová funkce minimalizující vynaloženou deformační práci Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 21
Metamorfóza mnohoúhelníků vzájemná transformace dvou mnohoúhelníků v rovině mohou mít různý počet vrcholů spojitá přechodová funkce (pro in-betweening ) metoda má fyzikální základ model polygonu vyrobeného z drátu minimalizace deformační práce mezi koncovými stavy natahovací i ohýbací práce Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 21
Lineární interpolace vrcholů Mnohoúhelníky se stejným počtem vrcholů: [,, ] P 0 = P 0 P 0 P 0 = P 0 ( ) ( ) ( ) ( ) ( ) 0 1 N 0 [,, ] P 1 = P 1 P 1 P 1 = P 1 ( ) ( ) ( ) ( ) ( ) 0 1 N 0 Mezipoloha vrcholu i: P(0) P t = 1 t P 0 + t P 1 ( ) ( ) ( ) ( ) i i i P(0.5) P(1) Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 21
Interpolace úhlů B i (0) P i (0) F i (0) P i+1 (0) P i-1 (0) θ i ( 0) P i (0.5) θ i ( 0. 5) P i+1 (0.5) P i-1 (0.5) P i (1) θ i ( 1) P i+1 (1) P i-1 (1) Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 21
Vyjádření vnitřních úhlů θ i = i 1, i, i + 1 t P t P t P t ( ) ( ) ( ) ( ) = B t tan A, 0, B = ( ) i, 0, F t ( ) ( ) Pro úhel svíraný dvěma úsečkami platí: i A B = A B x y x x + x y y y A B B A A B A B B tan θ i ( ) i t Fi t t = B t F t ( ) ( ) i ( ) ( ) i = y 1 t + y 2t 1 t + y t 0 2 ( ) ( ) 1 2 2 x 1 t + x 2t 1 t + x t 0 2 ( ) ( ) 1 2 2 Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 10 / 21
Vyjádření vnitřních úhlů [, ] [ ( 0) ( 0), ( 0) ( 0) ] Q = x y = F B F B 0 0 0 i i i i 1 ( F ( ) B ( ) F ( ) B ( ) ) Q [ x y ] 2 i 1 i 0 + i 0 i 1, 1 = 1, 1 = 1 2 Fi 1 Bi 0 + Fi 0 Bi 1 Q = x y = F B F B ( ( ) ( ) ( ) ( ) ) [, ] [ ( 1) ( 1), ( 1) ( 1) ] 2 2 2 i i i i Kvadratická Bézierova křivka daná uzly Q i : Q t = Q 1 t + Q 2t 1 t + Q t ( ) ( ) ( ) 0 2 1 2 přitom platí: θ i ( t) = [ 1, 0],[ 0, 0], Q( t) 2 Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 11 / 21
Změna vnitřního úhlu Q 2 Q 1 90 Q 0 monotónní Q 0 180 θ θ θ Q 0 0 Q2 θ Q 1 Q 2 Q 1 jeden návrat 270 přechod přes nulu Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 12 / 21
Natahovací práce Fyzikálně přesný vzorec: A průřez drátu E modul pružnosti materiálu původní délka drátu L 0 δ (absolutní) prodloužení W = δ 2 2 A E L 0 Při degeneraci drátu do jednoho bodu by vyšla nekonečná práce! Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 13 / 21
Natahovací práce Upravený vzorec: W S = S ks L1 L0 1 c min L, L + c max L, L ( ) { } { } S e 0 1 S 0 1 ks = A E koeficient pružnosti materiálu e S c S exponent pružnosti (1.. plastický, 2.. pružný) pokuta za degeneraci úsečky Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 14 / 21
Ohýbací práce ( ) B θ θ ( ) B W = k + m + p Q B B B e k B m B θ θ p B koeficient pružnosti v ohybu pokuta za nemonotónní změnu vnitř. úhlu celková změna vnitřního úhlu přehnutí vnitřního úhlu pokuta za přechod přes nulu ( překlopení ), nula pro Q(t) neprotínající osu nulového úhlu Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 15 / 21
Výpočet celkové práce součet všech natahovacích a ohýbacích prací natahovací práce pro každou hranu ohýbací práce pro každý vrchol normalizace velikosti mnohoúhelníků natahovací práce závisí na absolutním měřítku uniformní změna měřítka každého z polygonů tak, aby jejich obalové obdélníky měly delší stranu délky 1 Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 16 / 21
Globální optimalizace hledání takového vzájemného přiřazení zdrojových a cílových vrcholů, aby byla celková deformační práce minimální nepředpokládá se stejný počet vrcholů některé hrany mohou degenerovat delší hrany mohou být předem rozděleny na několik úseků dynamický algoritmus se složitostí O(MN) postup od kratších přiřazovacích úseků k delším Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 17 / 21
Graf přiřazení vrcholů P(0) 0 1 2 M-1 M=0 P(1) 1 kolaps v P(0) 2 přiřazení 1:1 natahovací práce (hrana) kolaps v P(1) zakázáno! ohýbací práce (dvě sousední hrany) N-1 N=0 Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 18 / 21
Algoritmus hledám cestu z [0,0] do [M,N] s minimálním ohodnocením cesta se nesmí vracet a zatáčet o 90 každá hrana cesty má natahovací práci každé dvě sousední hrany definují ohýbací práci dynamický algoritmus každý počáteční úsek cesty má v pomocném poli tři hodnoty kdyby se pokračovalo na V, JV nebo J Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 19 / 21
Obecnější algoritmus hledám cestu z [i,0] do [i,n] s minimálním ohodnocením musím probrat všechny možné začátky (i) cesta cyklicky přechází přes vertikální okraj o jeden řád větší složitost matice velikosti O(M N M) Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 20 / 21
Konec Další informace: J. Gomes et al.: Warping and Morphing of Graphical Objects, C.N., SIGGRAPH 95 T. Sederberg, E. Greenwood: A Physically Based Approach to 2D Shape Blending, SIGGRAPH 92 Morphing 2011 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 21 / 21