Perspektiva - prakticky

Základní principy perspektivy nejsou žádné kouzlo, ani žádná složitá matematika. Pro hrubý odhad si člověk vystačí s geometrií či matematikou základní školy.

Scéna

Jako refereční scénu jsem vytvořil jednoduchou scénu. Objekt známé velikosti v různých vzdálenostech nafocený fotoaparátem se známými parametry. Konkrétně jsem použil nápojovou plechovku 330 ml, o výšce 115 mm a průměru 64 mm (hrdlo 52 mm), postupně vzdálená 900, 1800, 2700, 3600, 4500, 5400, 6300, 7200 a 8100 mm (rozestup dlaždic). Na focení byl použit Canon 6D s snímačem o velikosti 36 x 24 mm a rozlišením 6240 x 4160, s objektivem o ohniskové vzdálenosti 24 mm (neupravená fotografie 900 mm).

Geometrický přístup

Při zanedbání konstrukce objektivu se můžeme na celou scénu podívat jako na středové promítání. Průmětna (sítnice oka, film, čip digitálního fotoaparátu) je vzdálena o ohniskvou vzdálenost od středu promítání. V případě použitého fotoaparátu je průmětna vysoká 24 mm, vzdálená 24 mm od středu promítání. Díky podobnosti trojúhelníků můžeme pro lepší viditelnost na obrázku posunout průmětnu do desetinásobku a desetkrát zvětšit - tedy 240 mm. Nyní pouze stačí středem promítání vést přímku, která bude směřovat na horní/dolní hranu plechovky a podívat se, kde tato přímka protne průmětnu. Na obrázku je nakresleno samotné promítání, výsledek promítání a porovnání s fotograií (obrázek lze kliknutím zvětšit).

Matematický přístup

Při promítání nám vznikají podobné trojúhelníky: střed-objekt a střed-průmětna. Můžeme tedy zkusit vypočítat výšku objektu na fotografii na základě této podobnosti (na krátké vzdálenosti hraje roli i to, že nejbližší část plechovky je o 26 mm blíž, než její střed). Výpočet tedy bude vypadat následovně:

  1. Ze znalosti velikosti a vzdálenosti objektu a ohniskové vzdálenosti je možné dopočítat velikost na průmětně: \[ {velikost\ objektu \over vzdalenost\ objektu} = {velikost\ na\ prumetne \over ohniskova\ vzdalenost}, \] tedy \[ velikost\ na\ prumetne = ohniskova\ vzdalenost \cdot {velikost\ objektu \over vzdalenost\ objektu} \] Pro první fotografii je to: \[ 24 \cdot {115 \over (900 - 26)} = 3.16 mm\]
  2. Pokud má snímač danou velikost a rozlišení, je možné dopočítat, kolik pixelů by měl objekt zabírat na výsledné fotografii: \[ pocet\ pixelu = rozliseni \cdot { velikost\ na\ prumetne \over velikost\ snimace}\] Pro první fotografii: \[ 4160 \cdot {3.16 \over 24} = 547 px\]

Na fotografii má plechovka velikosti cca 555 pixelů, což je chyba cca 1,5 %. To může být dáno např. nepřesností měření (např. nepřesným zarovnáním optického středu objektivu s počátkem, ne zcela přesný rozestup dlaždic), či zkreslením objektivu. Celkově jsem se na všech snímcích dostal s chybou pod 5 %.

Vzdálenost [mm] Velikost vypočítaná [mm] Velikost z foto [px] Odchylka [%]
900 547 555 1.4%
1800 270 276 2.3%
2700 179 184 2.8%
3600 134 137 2.3%
4500 107 111 3.7%
5400 89 93 4.3%
6300 76 80 4.7%
7200 67 70 4.7%

Po vynesení do grafu v excelu můžeme získat lepší představu, jak velká chyba to vlastně je.

Identickým způsobem můžeme vypočítat velikost obrazu pro libovolnou ohniskovou vzdálenost. Zde je porovnání pro ohniskovou vzdálenost 105 a 210 mm.

Vzdálenost [mm] Velikost vypočítaná [mm] Velikost z foto [px] Odchylka [%]
900 2395 2330 -2.8%
1800 1180 1150 -2.6%
2700 783 769 -1.8%
3660 576 576 0.0%
4560 462 461 -0.1%
5460 385 383 -0.6%
6300 334 330 -1.1%
7200 292 289 -1.0%

Pro 210 mm se plechovka ve vzdálenosti 900 mm nevejde na průmětnu.

Vzdálenost [mm] Velikost vypočítaná [mm] Velikost z foto [px] Odchylka [%]
1800 2360 2332 -1.2%
2700 1565 1535 -2.0%
3600 1171 1143 -2.5%
4500 936 914 -2.4%
5400 779 762 -2.2%
6300 667 651 -2.5%
7200 583 571 -2.2%
8100 518 508 -2.1%

Počítačová grafika

Celou scénu můžeme zkusit vymodelovat v nějakém 3D programu a nechat si výsledek vykreslit. Dnešní programy, jako např. Blender jsou schopné poskytovat fotorealistické obrázky. Je tedy více než pravděpodobné, že musí mít správně spočítanou perspektivu tak, aby odpovídala reálnému světu. Vytvořil jsem tedy kopii reálné scény a nastavil odpovídající parametry kamery.

Následně jsem nechal spočítat obrázky pro jednotlivé vzdálenosti a porovnal s fotografiemi.

Měření

I takto jednoduchý přístup je celkem dostačující na ověření řady tvrzení o fotografiích. Lze například alespoň rámcově ověřit, zda autor tvrdící, že zachytil objekt na vzdálenost 50 km si číslo vycucal z prstu nebo je to údaj, který by mohl odpovídat realitě.

Na základě znalostí fungování perspektivy a možnosti jejího ověření, je také možné zcela jednoznačně prokázat, že objekty nemizí odspodu ani jinak pochybně, jak se někteří manipulátoři snaží ukázat. Zmenšují se přesně tak, jak je geometricky, či matematicky popsáno. Velký zoom tak může maximálně zvětšit sotva viditelný objekt, ale nedokáže jej přitáhnout zpoza překážky. Nemá jak.

Perspektiva neořezává lidem nožičky a neokusuje Sluníčko odspodu...

Dokonce ani na velké vzdálenosti...