HTML

It's like "Everything is possible"

Az Élet, A Világmindenség Meg Minden

Friss topikok

  • scv: Ezzel mondjuk abszolút távolságokat nem lehetne megadni, szerintem még akkor sem ha van egy ismert... (2010.07.05. 21:52) 3D két kamerával [elmélet]

Linkblog

Locations of visitors to this page

3D két kamerával [elmélet]

2010.07.05. 11:45 asjlow

Régóta dédelgetett elméletem osztom meg veletek. Egyrészt azért, mert a megvalósítása igen sok időt és energiát venne igénybe, valamint nem elhanyagolhatóan pénz hiányzik hozzá, nem 2 fillér az elektronika hozzá.

Na szóval: Van két igen jó minőségű kameránk, fontos a felbontás, megatöbbi. Két kamerával nézünk egy objektumot, jelen esetben legyen ez egy kocka. A szemünk képes 3D-ben látni, ugye, ezt vesszük itt is alapul. A két kamerának a távolsága, egymással bezárt szöge, a kamerák látószöge adott.

Amint az ábrán látszik, a kockán lévő kék pöttyöt mindkét kamera látja. Ennek a pontnak a távolságát kellene  valahogy kiszámolnunk, vagy pontosabban egy koordinátát szeretnénk hozzárendelni, (x,y,z) formában.

Az origó legyen mondjuk a két kamera közt húzódó zöld egyenes felezőpontja.

De előbb számoljuk ki a két piros vonal hosszát.

Az ábrán jelzett elnevezéseket használom fel a számolás során. A számoláshoz felhasználjuk a szinusz tételt. Azaz a háromszög oldalai úgy aránylanak egymáshoz, mint a velük szemben lévő szögek.

Felhasználva azt, hogy a háromszög szögeinek összege 180°, így a balra látható képlettel megvan "b" hossza.

Hasonlóan a "c" is kiszámolható, csak jobb felül sinA van, és persze bal oldalon "c".

Tehát megvan a két piros szakasz hossza, ezzel meghatározható a kék pötty x és y koordinátája.

Ehhez az egyenes egyenlete kell: y-y0=m(x-x0). Ahol a meredekséget a szögek tangensével kiszámolhatjuk.

"b" egyenlete: y-y1=tg(A)(x-x1)

"c" egyenlete: y-y2=tg(180-B)(x-x2)

 

 

 

 

 

 

 

 

 

x3, y3 kiszámolásához az adott egyenletrendszert kell megoldanunk, egy megoldás lesz: a kék pötty (x,y) koordinátái.

Eddig úgy tűnik, felesleges volt a két egyenes hosszát kiszámolni, de most már mindegy :).

 

Ezen a ponton ha a kilapított kis ábrát 3D-ben elképzeljük, akkor a kék pötty helyén most egy egyenes van, ami merőleges lenne az ábrára, azt most nem rajzolnám be, kibökné a szemetek :D. Hogy egy kicsit matekosok legyünk: nincs meg a z koordináta. A z koordináta kiszámolásához tehát oldalról kell nézni a dolgot, nem felülről:

 

 

 

 

 

 

 

Iyenkor a "D" szög amit ismerünk (itt most kb -15°). Azzal, hogy oldalra fordultunk, a koordinátarendszernek jelenleg az y-z összefüggésében látjuk a témát, ráadásul most balra megy a plusz iránya. Fel kell írni az origóból induló, tg(D) meredekségű egyenes egyenletét y és z függvényében. Itt igazából síkokkal játszadozunk, de az egyszerűség kedvéért projektálom mindig két koordinátára a dolgot. Az egyenlet: z=tg(D)y. A másik egyenes, amivel elmetszük: y=y3, ami az ábrán a kék függőleges egyenes. Behelyettesítve:

z=tg(D)y3

A végeredmény: 

 

 

 

 

 

 

 

Ezzel kész is vagyunk. Szóval adott a kamerák távolsága, a kamerák által bezárt szög és a látószögük. Ha meg tudjuk mondani, melyik a közös pont a két képen, ki tudjuk számolni a koordinátáit. Ez az elmélet gyenge pontja, a közös pont megtalálása macerás dolog szoftveresen... Viszont, ha sikerül áthidalni a problémát, akkor ráeresztjük az összes közös pontra, és megkapjuk a 3D-s képet, textúrával. :)

Az egyenletekben lehet még hiba... párat már javítottam, mert a postot kb 1 hete írogatom, de nem kizárt, hogy elkerülte valami a figyelmem. Ha valami hibát láttok még benne, akkor pls szóljatok.

1 komment

Címkék: tech tudomány 3d

A bejegyzés trackback címe:

https://asjlow.blog.hu/api/trackback/id/tr532100648

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

scv 2010.07.05. 21:52:24

Ezzel mondjuk abszolút távolságokat nem lehetne megadni, szerintem még akkor sem ha van egy ismert rögzített pontod, csak térhatású felvételeket készíteni.
süti beállítások módosítása