Robotok fejlesztésével - archív - kamera kalibrálás OpenCV

Kezdjük a fényképezőgép típusától.
Képsík - CCD mátrix kamera;
Lyukra sík - a sík a vékony lencse
X - megfigyelhető pont;
f - fókusztávolság;
Optikai tengely - a fő optikai tengellyel.

Ha emlékszel az iskola során geometriai optika, perspektivikus vetítés egyenlet így néz ki:
Most vesszük figyelembe azt a tényt, hogy általában a fő optikai tengely átmegy a ponton a CCD tömb koordinátái (0, 0).
Ahol c - a koordináta a metszéspont a fő optikai tengelye a CCD.
Mi összerakható egyenletek X és Y koordinátái, tekintettel arra, hogy mivel a gyártási folyamat hibák mátrix pixelek téglalap alakú kissé.
Su és sv - pixel méretarányt.
Írunk egyenlete perspektivikus vetítés egy mátrix formában, nekik könnyebb volt dolgozni. És OpenCV barátok főleg mátrixok.
- pont koordinátáit a külső koordináta-rendszerben,
- koordinálja a vetületi pontjához
- perspektivikus vetítés mátrix-egyenlettel
Most vesszük figyelembe azt a tényt, hogy a lencse nem vékony, és torzítja a képet.

Ez a típusú torzítás nevezik radiális. Úgy kezeljük az alábbiak szerint:
Itt r - távolság a metszéspontja a fő optikai tengely a CCD, hogy a pont a nyúlvány; K1, K2 - radiális torzítást együtthatók.
Most, a mátrix-egyenlettel perspektivikus vetítés a formája:
Amellett, hogy a radiális torzítás létezik több tangenciális. Ez abból adódik, hogy a gép a CCD nem merőleges a fő optikai tengelyre. Ő modell, én nem kell figyelembe venni: ez nagyon kicsi. OpenCV határozza meg és a tangenciális torzítás együtthatók.
Amikor a kamera telepítése is vannak hibák - figyelembe veszi a modell és azok.

Az így kapott mátrix körüli forgás a kívánt kamera koordináta-rendszerben:
Vector kamera nullaponteltolásokat kívánt koordináta-rendszerben:
Most a kamera modellt, figyelembe véve a radiális torzítás és a telepítési hibák a következők:
Térjünk át a homogén koordináták:
Ott rij - megfelelő komponenseket a kapott mátrix kamera forgás a kívánt koordinátarendszer.
tx, ty, tz - alkatrészek a kamera ellensúlyozza a kívánt koordináta-rendszert.
Tehát megvan a fényképezőgép típusától.
Ez magában foglalja a belső paraméterek:
fu, fv - gyújtótávolság
cu, cv - a helyzet az optikai centrum
Külső opciók: 3 Euler szögek, 3 sugárzott a vektor komponense.
És most a meghatározására ezen paraméterek OpenCV, azaz a kamera kalibráció.
Az elv nagyon egyszerű kalibrálás - látjuk, hogy egyes képeket a sakktábla, raspoznaom sarkát. És tudta, hogyan kell ténylegesen elhelyezett sarkából a sakktábla, numerikusan kiválaszthatja a fényképezőgép beállításait. OpenCV egy sor beépített támogatása ennek a kalibrációs modell. Fogom használni OpenCV felületet C ++.