Billedmanipulation - Morphing
oeje-animation-jsb.gif

Morphing er en effekt, der består i en glidende overgang mellem to billeder. Det gøres via en manipulation af de to oprindelige billeder til en række mellembilleder, hvor de enkelte billedelementernes farve, position og størrelse løbende ændres.

De første rå & simple Morphings er fra midtfirserne og frem, men teknikken bliver udført til perfektion og bliver almen kendt med Michael Jacksons musikvideo Black & White fra 1991, hvor en morphing mellem ansigter er med til at understøtte sangens budskab om, at vi alle er ens uanset race.

Teknikken bliver ikke kun brugt som forvandlingseffekt. Den bruges også i tegnefilm, så tegneren kun skal lave en række nøglescener og herefter kan bruge morphing til at generere de mellemliggende billeder.

I det følgende introduceres to teknikker bag Morphing: transformering af farve og transformering af form.

Morph i GIMP & GAP

Ved at installere animationspakken GAP i GIMP er det muligt at lave en gif-animation der morpher mellem to billeder. Installer først GIM og søg så på "Download GAP GIMP" og installer denne.

  1. Tag 2 fotos af dig selv og en klassekammerat.
  2. Lav en morphing animation i GIMP mellem de 2 fotos ved følgende trin:
    1. Åben to billeder som lag i GIMP
    2. Højreklik på hvert billede og tilføj en alfakanal, så billederne kan nedtones.
    3. Klik ind i Video i menuen og vælg Morph og Morph…
    4. Klik først på Shape og marker selv flere ens punkter i billedet - eks. næsetip, mundvige og øjenkroge.
    5. Skriv et ønsket antal mellembilleder i Steps - desto flere billeder desto mere flydende (men langsommere at udføre).
    6. Klik på menuen Filter og derefter på animation og Optimize (for Gif)
  3. Gem filen som .gif animation og åben den i din browser!

Billede 25 ud af 50 i øje-morphingen
oeje3-midt-jsb.gif
Overtoningen ses tydeligt i "hvide" farve, mens ændringen af form og position fremgår af nettet.

Overfading

Ved at nedtone et billede samtidig med at man optoner et andet kan man skabe en simpel illusion af glidende overgang, hvis motivet har nogenlunde samme størrelse og propotioner - en teknik der blev brugt i et af de tidligste eksempler på morphing, musikvideoen cry af Godley and Creme.

Digitalt kan det gøres ved at lave en glidende overgang mellem farverne på de enkelte pixler på to billeder. Teknisk set er det enkelt, da man blot tager forskellen mellem start- og slutfarve og herefter lave et antal intervaller alt efter det ønskede antal af mellembilleder. - Det gælder især et sort/hvid-billede, hvor der kun er én "kontrastværdi".

Warping

Har de to billeder af f.eks. ansigter nogenlunde samme form og position, så kan en simpel overfading få det til at se ud som om ansigtet ændrer sig fra det ene til det andet. I reglen er der dog forskelligt forhold mellem næsens størrelse, afstanden fra hage til mund med mere, så man er nødt til at flytte - warpe - de enkelte billedepunkter stykke for stykke for at få en flydende overgang.

Perfekte transformationer fra en figur til en anden kræver at man gør man brug af avancerede matematiske metoder som affine afbildninger, der beskriver hvordan en trekant transformeres over i anden. Det er en kompleks opgave at udvikle gode algoritmer til Morphing, men de grundlæggende principper og problematikker kan ses i selv simple teknikker til morphing, som alle kan programmere og som med de rigtige billeder kan give et forholdsvis godt resultat.

Trinvis udvikling af Morphing-algoritme

Simpel Morphing version 0.1

Er de to billeder blot forskudte, er manipulationen ganske simpel: man tager forskellen mellem start- og slutposition og inddeler den i intervaller alt efter det ønskede antal frames. Kombineret med overfading kan det give en flydende overgang ved to forholdsvis ens billeder, der blot ligger forskudt.

Simpel Morphing version 0.2

Er der er tale om næser med forskellig størrelse, så er det dog ikke nok at flytte alle pixels i en retning . - Her skal pixels på næsetippen ikke flyttes, mens dem i kanten skal flyttes. Det kan løses ved at lade brugeren markere ens punkter på de to billeder og herefter flytte de enkelte pixler i forhold til det punkt, de er tættest på.

Mellem hver pixel og et punkt, kan der opstilles trekanter - de samme som også udnyttes i affine transformationer. I Simpel Warping bruges trekanterne dog kun til via den pythagoræiske læresætning - a2 + b2 = c2 - at beregne, hvilket af brugerens punkter en pixel er tættes på. Vi kender hhv. x og y for både pixel (a) og punktet (a) og derfor er afstanden mellem et punkt og en pixel: c = /(ax-bx)2 + (ay-by)2. Når først det afgjort hvilket punkt en pixel skal følge er det blot at flytte denne som i warping 0.1

Simpel Warping version 0.3

Løsningen er ikke overraskende altså mangelfuld, og der kan opstå huller og overlap idet pixler flyttes. Derfor burde den omtænkes så pixel ikke bare flyttes, men også strækkes, og det både er positionen og størrelse der ændres. - Det er som nævnt en matematisk kompliceret beregning, men der kan laves en lappeløsning ved at udfylde huller med et gennemsnit af farverne i de pixler der er omkring. Resultatet er langt fra perfekt, men ved mange punkter fra bruger bliver resultatet rimeligt.

Simpel Warping - Yderlige optimeringer

Andre muligheder for at optimere Simpel Warping er at flytte pixler mindre, hvis de er langt væk fra et punkt eller inddrage flere af de nærmeste punkter i beregningen.

Medmindre andet er angivet, er indholdet af denne side licenseret under Creative Commons Attribution-NonCommercial 3.0 License