Annons
Artiklar > Projicering vid extremt vid bildvinkel

Projicering vid extremt vid bildvinkel

Vill man få med så mycket som möjligt i en bild ställs man inför precis samma problem som när jordklotet ska återges på en karta. Vid fotografering sitter man istället inne i sfären (klotet) och tittar ut.

Innehåll
Cylindrisk längdriktig projektion
Van der Grintens projektion
Azimutal längdriktig projektion (fisheye)
Gnomomisk projektion (raktecknande)
Perspektivkorrigering för fisheye
Referenser/länkar

Cylindrisk längdriktig projektion

Finns i olika varianter, men här är det den enklaste där jordklotets vinkelkoordinater (latitud och longitud) översätts direkt till den plana kartans/bildens höjd- och breddkoordinater. Namn för denna är kvadratisk plattkarta eller på engelska "equirectangular projection". Upptill och nertill motsvarar hela sidan varsin enda punkt (nordpol/sydpol) medan kortsidorna passar ihop.

Förvrängningen blir förstås stor nära polerna. På latitud 60° (strax norr om Uppsala eller i bilden här delningen en sjättedel från toppen) blir skalan i breddled dubbelt så stor (1/cos60°=2) som skalan i höjdled, som är konstant över hela kartan. Dvs. meridianerna är längdriktiga - därav namnet på projektionen.

Vid fotografering är denna projektion vanlig när man sätter ihop så kallade sfäriska panoramor. Sfärisk är därför ytterligare ett namn som används för projektionen.

Vertikala linjer ska alltså avbildas korrekt. Att min exempelbild inte riktigt ger det intrycket beror på att jag inte lyckats hundraprocentigt med hopfogningen av de sex plus två delbilderna i panoramat.

Van der Grintens projektion

Beskuren upptill och nertill är den här projektionen vanlig för världskartor. Fördel jämfört med den sfäriska projektionen är som synes att ytorna upptill och nedtill avbildas mindre förvrängda och nackdel är att färre raka linjer avbildas raka.

Jag har roat mig åt att försöka skriva ett litet program (för PC, 310 kB) som skapar "grinten-bilder" från sfäriska.

Azimutal längdriktig projektion (fisheye)

Här två konstgjorda fisheyebilder med bildvinkeln 180° som tillsammans rymmer samma info som de två tidigare bilderna. Spelar ju inte riktigt i samma division eftersom det inte är en sammanhängande bild. Fast det går att få det också om man i datorn väljer bildvinkeln till 360°.

Ett kul resultat, men förvrängningen är minst sagt extrem i kanterna som här motsvarar en enda punkt (mitten i högra fisheyebilden ovan).

Denna ideala fisheye-projektion avbildar vinkelskillnader längs räta linjer genom bildens mitt likadant över hela bilden. Vanlig beteckning för halva bildvinkeln är θ (theta). Med brännvidden f fås bildens radie R = f·θ (vinkeln mätt i radianer).

Räknar man på detta finner man att det inte stämmer riktigt att ett 15-16 mm-objektiv tecknar ut 180° på en småbildsdiagonal (43 mm). Ett mer korrekt uttryck är istället R = 2·f·sin(θ/2). Exempel med Sigmas 8 mm-objektiv som anges teckna en 22,08 mm stor cirkel med bildvinkeln 180°. Man får då f = 11,04/(2·sin(π/4)) ≈ 7,8.

Med Panorama Tools filter "correct" och "radial shift" omvandlar man enkelt en bild som följer 2·f·sin(θ/2)-projektion till ideal "f-theta-projektion" med koefficienterna a=0, b=-0,11, c=0 och d=1,11 i polynomet r_src = d·r_dest+c·r_dest²+b·r_dest³+a·r_dest^4. Koefficienterna kommer ur enkel McLaurinutveckling av sinusfunktionen skalad för att passa korrektionspolynomet. d=π(√2)/4 och b=(√2)π³/(6·4³).

Åter till den ideala projektionen, med den är det alltså inget skalfel radiellt. Däremot vinkelrätt mot detta, dvs. tangentiellt, är skalfelet θ/sinθ, en funktion som går från 1 (inget fel) då θ=0 till oändligheten då θ=π. För θ=π/2, (vid bildkanten med bildvinkeln 180°) är felet dock inte större än π/2≈1,6.

Gnomomisk projektion (raktecknande)

Skalfelet (för vinkelavbildning) för ett idealt raktecknande objektiv fås av uttrycken 1/cos²θ (radiellt) 1/cosθ (tangentiellt). Om man inte ska tillåta ett större radiellt skalfel än det tangentiella felet som blir i kanten för en 180-graders fisheyebild (dvs π/2≈1,6) kan man inte använda ett objektiv som ger större bildvinkel än 74°.

För ett raktecknande objektiv gäller att R = f·tanθ. Om man låter långsidan för småbild (36 mm) motsvara bildvinkeln 74° ger det ett objektiv med brännvidden 24 mm (18/tan37°). För att det är kul med siffror - tittar man bara på det tangentiella felet för den raktecknade bilden får man brännvidden 15 mm istället...

Om vinkelskalfelet vore enda faktorn som styrde om en vidvinklig bild såg bra ut skulle man alltså alltid använda fisheye, men så är det ju inte. Oftast är det betydligt viktigare att raka linjer avbildas raka.

De två kvadraterna har bildvinkeln 172° på bredden och höjden och 2·arctan[√(2)·tan(172/2)] = 174° på diagonalen. Hade varit kul om jag lyckats med panoramat så att inte husen spretat i sidorna, men jag tycker ändå det är en fascinerande effekt att få upp husens sidor i gränden på det här sättet - jämför med de två fisheye-cirklarna!

Tittar man på fönstrena ser man att avståndet mellan dem i bilden är stämmer med det verkliga avståndet på väggen, bortsett från att bilden spretar i kanterna. Ett objektiv som inte gör denna avbildning helt korrekt missar också att få alla linjer raka (tunnformad/kuddformad distorsion).

Genom att fota ett måttband liggandes i skärpeplanet med noga passning så det blir precis samma skala i båda ändorna kan man med enkel matrisberäkning (minsta kvadratmetoden) få fram koefficienter till korrektionsfiltret i Panorama Tools plugin som jag nämnde ovan. Brasklapp för att distorsionen varierar med avståndsinställningen.

Perspektivkorrigering för fisheye

Böjd horisont känns ju inte direkt naturligt.

Här korrigerad med Panorama Tools filter "Perspective" (turn to vertical 17 och rotate -6 med HFOV 132). Lite surt om man hade tänkt sig att bilden skulle vara rektangulär, men en annorlunda ram behöver inte vara fel alla gånger!

Vid fisheyefotografering som inte har som syfte att förvränga verkligheten mer än nödvändigt behöver man tack vare datorn alltså inte alltid placera sina raka linjer så de går genom bildens mitt.

När det gäller perspektivkorrigering av raktecknade bilder kan man få en bra förståelse för hur det fungerar om man snurrar runt lite i ett sfäriskt panorama. Zooma först in det motiv du vill ha, sedan zoomar du ut och byter vinkel så de störtande linjerna blir raka. Tänk till sist en beskärning motsvarande det du zoomade in.

Referenser/länkar


MathWorld
  • cylindrisk längdriktig
  • van der Grinten
  • azimutal längdriktig
  • gnomomisk

    Lantmäteriet
  • (har nedgraderat sina sidor sedan jag skrev artikeln)

    Motor
  • Panorama Tools
  • mitt eget "grinten-program" för PC (310 kB)

    Publicerad 2004-02-09.
  • 10 Kommentarer

    @lkerdun 2004-02-10 12:57  
    Betyg: 3
    Förmodligen mycket intressant oh lärorik artikel som tanke. Dock är "grekiskan" påtagligt närvarande som medför att en vanlig "dödlig" (som mig själv i det här fallet) inte fattar ett smack. Mer än när det förekommer brännvidder och annat som tillhör vanlig fotografering.
    Möjligen kanske texten inte går att göra mer lättläst(/förståerlig) men då kan man ju fundera på om inte viss reservation inledningvis nämns i att man bör vara mycket matematiskt kunnig för att helt kunna ta del av artikeln.
    ejeklint 2004-02-10 13:22  
    Betyg: 4
    Läsvärd och intressant artikel. Ett par saker jag funderat över fick sin förklaring och det var inte helt omöjligt att hänga med i formlerna heller. Fast lite huvudvärk fick jag. :-)
    MagnusG 2004-02-10 14:48  
    Bra artikel. Lättläst och lättförståelig, skönt med en teknisk och matematisk beskrivning, känner mig genast mycket mer hemma då.
    Magnus Wahlgren 2004-02-10 15:34  
    Mycket intressant. Formlerna kräver förstås lite eftertanke. Men tack vara de fina bilderna blir det ändå ganska klart. Stort tack!
    kaw 2004-02-11 00:11  
    Tack för kommentarer!

    Jag kan hålla med om att det är en fördel om man har lite mattekunskaper, men första halvan och slutet har ju ingen matte i sig ;-) Hittade en länk till http://www.theducation.se/kurser/umaprep/4_trigonometri/gymad/teori/index.asp>"mattekunskapskrav för artikeln".

    Att göra tydligare pedagogiska illustreringar går säkert (inget jag är bra på), jag är (förstås) nöjd med gränden som motivval.

    Orkade inte putsa på källkoden för allmänt betraktande. Får duga att e-posta den till dem som är särskilt nyfikna! Inte mycket att se heller... För varje pixel i den resulterande bilden hämtas ett värde från sfäriska bilden med hjälp av Grinten-inversformel och en medelvärdestagning mellan de maximalt fyra aktuella pixlarna.
    klerk 2004-02-11 12:30  
    Greppade det mesta och tyckte det var läsvärt. Lite udda för min fotografering, men mattelänken gjorde att matteintresset vaknade. Plöjer som bäst igenom alla trigonometriska funktioner som man tidigare läst och kunnat, men nu glömt och gömt...
    Måns H 2004-04-07 20:57  
    Intressant med projektioner. Våra ögon har ju sfärisk retina, men vad som projicieras på den och vad vi (tror oss) se är nog inte alls samma sak. Krökt horisont finns på bilden på retinan, men vi har lärt oss att den är rak och ser den rak. Jag tror att olika personer ser olika, som arkitekt har jag tränat mig att se raka linjer raka, medan en förutsättningslös fotograf eller målare kanske kan se det ögat ser mera direkt.
    7nonahlady 2004-09-11 18:39  
    Betyg: 3
    the article is very interisting..can u just translate 2 english? it's hard to my 2 read it..
    thanks again( u missed 2 marks cuz of d language)
    Slas 2005-05-19 14:19  
    kaw 2005-05-28 02:46  
    Tack Dan för länkändringen.
    Få ut mer av Fotosidan som inloggad

    Fotosidan är gratis! Som inloggad får du smarta funktioner. Du kan ladda upp 10 bilder och få kritik på dem. Du får vårt nyhetsbrev. Du kan skapa köp&sälj annonser mm

    Merläsning

    ANNONS