Fényképezőgép helyének kiszámítása

Fórumok

Sziasztok!

Az a kérdésem, hogy nem ismertek-e olyan programot, amelybe be lehetne tölteni egy képet, azon bizonyos pontokat ki lehetne jelölni, és meg lehetne neki mondani az abban a pontban ábrázolt objektum helyét (mondjuk lon, lat, height), és nagyjából kiszámítaná, hogy a fényképet honnan készítették.
A múltkor valamelyik filmben láttam ilyet, de úgy gondolom, hogy a valóságban is lehetséges lehet ez a számítás.

Hozzászólások

Nem hinném, hogy ez lehetséges. Gondoljál csak a zoom-ra vagy a különböző objektíveknek a torzítására...

Viszont ez 2, azonos tipusu fenykepezo kozott annyira (szvsz) nem ter el, es ezeket az infokat nagyreszt ki lehet szedni a jpg fejlecebol. Ha ez megvan, szerzel egy ugyanolyan gepet, es akkor mar viszonylag egyszeruen ki lehet merni a torzitast, amivel visszaszamolva mar egesz pontos lesz.
(Nem azt mondom hogy egyszeru, csak hogy nem lehetetlen).

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

Ilyen program nem hiszem hogy van. Hacsak valaki nem kódolta le önnön szórakoztatására egy délután. :)

Egyébként a dolog közelítő megoldása lehetséges.

Ugyanis, ha feltesszük, hogy a fényképezőgép perspektivikus projekciót végez, akkor nincs más dolgunk mint kiszámítani a projekciós mátrixot.
Ez egy 4x4-es mátrix (homogén koordináták).
Ez átlagos mátrix esetén 4 pont megadásával számítható, Bár jelen esetben szerintem elég 3.

Az persze probléma, hogy a fényképezőgép nyilván nem ilyen szépen működik (torzítás, stb), de azért nem olyan hatalmas az eltérés. (Ha az lenne, akkor nem ezt használnák 3d grafikához...)

Ha komolyan érdekel, megkérdezek valakit aki kompetensebb nálam, hogy hogyan szoktak ilyesmit csinálni.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

"A múltkor valamelyik filmben láttam ilyet.."

Helyszínelők? :)

Hello!

Ilyen program igenis van, nem is egy, hanem sok!!!
Csak kicsit másképp kell megközelíteni a dolgot:) A kérdés csak akkor megoldható ha a tárgyról minimum 2 fénykép készült! Ezzel foglalkozik a fotogrammetria. Googleban még a sugárnyaláb kiegyenlítés, légiháromszögelés, és a DLT szavak valamelyikét írnám be.
konkrét program winre: photomodeller.

Mélységélesség nélkül egy kép alapján nem lehetne elkészíteni a számításokat. (Pl.: nagyon okos (!) digitális fényképezők esetén.)
Ami analóg technológiávalkésült kép, azzal talán meg lehetne határozni egy kép alapján is, de ott is nagyon sok lenne a tévedés.

Nos, úgy látom, pontosítanom kell.
Adott néhány kép, amelyek mindenféle szép tájakon készültek, és szeretném ezeket a képeket újra elkészíteni, ezért szeretném nagyjából meghatározni, hogy melyik képhez melyik hegyre kell felmennem. Nem akarok centis pontosságot, a cél a körülbelüli meghatározás.
Ehhez a feladathoz szerintem nem kell két kép különböző szögekből, illetve nem annyira fontos, hogy analóg vagy digitális eszközzel lett készítve a kép, és nem igazán fontos az optika torzítása sem.
Szerintem ha egyszerű vetítést tételez fel a program, az számomra akkor is kielégítő pontosságot biztosítana.

Ebben az esetben jobban jársz ha térkép segítségével magad nézed ki a gép helyét. Mert ha már be tudod azonosítani a képen látható hegyeket, tavakat, stb., akkor már nem okozhat gondot a gép helyének meghatározása, hegynyi pontossággal. Szvsz ennél pontosabb eredményt egyébként se kapnál.
(Főleg, mivel a tájképek általában nagylátóval készülnek, amik jobban torzítanak.)

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Én a Pilis és a Börzsöny térképem borítóján lévő képeket tökéletesen be tudtam azonosítani. A Börzsönyösnél pár hete jártam :-).

A projekciós mátrixot meg is lehet "érezni". Találsz dolgokat, amiket be tudsz azonosítani, majd megpróbálsz képzeletbeli vonalakat húzni a képen, majd a térképen is. Kicsit nézegeted, megnézed merre vannak utak és meglesz.

Jó, az tény, hogy a Visegrádi vár környékén kb 100 azonosítható pont van, a Csóványos körül meg összesen néhány út van, tehát nekem könnyű dolgom volt...

Az első amit nem értettem az volt, hogy talán azt akarod, hogy beszkenelsz egy képet és a program mondja meg a szélességi és hosszúsági fokot, meg a tengerszint feletti magasságot?
Vagy inkább a szkenelt képből azt akarod megállapítani, hogy az ismert tárgyhoz képest mondja meg azt a pozíciót, ahol a fényképező gép a felvételkor volt: pl. 8 m-re 23 fokkal balra.
De úgy látom te az előbbit akarod. Arra vagy kíváncsi, hogy a képen látható patak a mellette álló tölgyfával melyik hegy lábánál van és pontosan hol?
Ehhez óriási adatbázis kellene és akkor sem várható megbízható eredmény főleg a természeti tájak folyamatos változása miatt. Esetleg épületeknél elképzelhető, ha azok ismertebb helyen vannak.

Én azt gondolom, egyértelműen leírtam, hogy nem az első esetről van szó. Van egy képem, ami ábrázol például egy várost. Azon látok három templomtornyot. Valamilyen egyéb módszer alapján (pl. GPS-es mérés, térkép, google earth, i-go, stb) megállapítom a három templomtorony helyét (lon, lat, hei), majd megmondom valamilyen programnak, hogy a képernyőn x,y pixelen levő tárgy valójában (lon, lat, hei) helyen van. 3-4-5 szükséges pontot megadok neki, erre visszaadja, hogy a fényképező nagyjából a (lon, lat, hei) pozícióban állt. Ez a pontos feladat.
De már tervezem a megvalósítást, mert értelmes programról, ami ezt tudja, nem írt senki eddig.

ha van mondjuk 3 hegycsucsod aminek tudod a kordinatajat akkor szerintem konyeden megtudsz hatarozni egy egyenest, ezen az egyenesen van valahol az a pont ahonan kesziteted a felvetel.
ha masik pontokra is megcsinalod ezt akkor a 2 egyenes metszespontja az ahonan keszult a felvetel

kis kordinata geometria meg egy parhuzamos szelok tetele

mgb

fogj egy terkepet amin rajta van a 3 hegycsucs legyen a,b,c mondjuk legyen a c ami a fenykepen a es b kozt latszik

kosd osze a-b a terkepen, ezt a szakaszt oszd fel olyan aranyban mint ahogy a fenykepen felosztja az ab szakaszt a c, legyen ez a pont d a c-d atmeno egyenesen van valahol az a pont ahonan keszult a kep.

ha ezt egy 4-dik pontal is megcsinalod akkor megvan a tethely.

mgb

Nem vagyok szakértő, csak érdeklődöm, hogy ez nem csak akkor működik, a az összes pont egy síkban van? Úgy értem, hogy nem baj, ha pl egy magas hegyről készült a kép egy városról, és a három referenciaobjektum pl. három torony, ami kölönböző magasságokban van? Vagy a magasságkülönbségeket figyelembe lehet valahogy venni? Vagy nem is kell?

Csaba

Arra gondolsz, hogy pl képen kijelölöd, hogy ez a Nap, ez a Hold, ez a Szíriusz, EXIF-ből jön a dátum, feltételezed, hogy a fotó a Földön készült, majd a progi csillagászati naptárból(asszem így hívják) nézze ki, hogy a Földön hol van olyan pont, ahol EXIF.date időpillanatban a 3 kijelölt égi ojjektum hasonlóan látszódott?

update:
Mondjuk úgy, hogy a 3 pont kiad egy 3szöget, s azok oldalarányait lehet hasonlítani a csillagászati naptár adataihoz. Hát, nem lenne egy gyors lefutású progi...

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Az egyetlen olyan program, amit ismerek és képes erre: 3DStudioMax. Ha elmész valkihez, akinek van, vagy feltelepítes magadnak, máris kipróbálhatod. A súgójában van is egy tutorial erről (hogy hogyan kell csinálni). Lényegében kell legalább 3 de inkább 5 pont a térben, amit pontosan meghatározol a modellező eszközeivel. Ezek után be kell tölteni a fényképet neki, és összerendelni a fénykép egyes pixeleivel a térben elhelyezett refereincia pontokat. Ezek után képes kiszámolni, és a 3d tervező nézetben elhelyezni egy kamerát, ami a fényképezésnek megfelel. Ajánlott még tudni továbbá, hogy milyen fényképezővel (objektív, stb...) volt fényképezve.
Zavard össze a világot: mosolyogj hétfőn.