Skip navigation

Kamera kalibráció a Matlab Camera Calibration Toolbox-szal

Példa

Megjegyzés: az ábrák és a képek a Matlab Camera Calibration Toolbox hivalos, példákat bemutató oldaláról származnak. Az alábbi lépéseket ezen az oldalon is követhetjük.

Töltsük le a Matlab Camera Calibration Toolbox-ot a webhelyről, vagy a helyi könyvtárból.

Töltsük be Matlab-ban a toolboxot, nyissuk ki, a kinyitott könyvtár neve TOOLBOX_calib lesz:

  1. Lépjünk be a TOOLBOX_calib könyvtárába! Adjuk hozzá ezt a könyvtárat a PATH-hoz, az addpath() függvényel.

    utvonal = pwd;
    addpath(utvonal);
    

    Tekintsük az első példát a Camera Calibration Toolbox weboldalán! Töltsük le a példa képeket és nyissuk ki a TOOLBOX_calib könyvtárba!

  2. Indítsuk el a calib_gui programot. Először válasszunk módot (Standard). mód választás Ezután megjelenik a Camera Calibration Toolbox főablaka. mód választás

  3. A program grafikus ablakában kattintsunk az Image names gombra. A képek neve (basename) Image lesz, a kiterjesztésnél válasszuk a tif kiterjesztést. A képek sorszámát nem kell megadni, a rendszer majd automatikusan felismeri. Ha ezeket megadtuk akkor a rendszer automatikusan ki fogja írni a felismert fájlneveket:
    Basename camera calibration images: Image
    Image format: ([]='r'='ras', 'b'='bmp', 't'='tif', 'p'='pgm', 'j'='jpg', 'm'='ppm') t
    Loading images: 1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...
    
  4. Kattintsunk az Extract grid corners gombra, aminek hatására a program megkérdezi, hogy mely képeken akarjuk kijelölni a sarokpontokat (alapértelmezésként minden képen). Válasszuk az alapértelmezést, nyomjunk ENTER-t.
    Extraction of the grid corners on images 
    Number(s) of image(s) to process ( [] = all images ) 
    
    Ha csak bizonyos képeken akarjuk kijelölni a sarokpontokat, akkor azt azok sorszámait az alábbi formában adjuk meg: [2, 5, 11, 18, 20]
  5. A program ezután megkérdezi, hogy mekkora ablakmérettel keresse a sarokpontokat. Itt is válasszuk az alapértelmezett beállítást, wintx=5 és winty=5. Ez azt jelenti, hogy az ablakméret egy 11x11-es lesz.
    Window size for corner finder (wintx and winty):
    wintx ([] = 5)
    winty ([] = 5)
    Window size = 11x11
    
    A következő kérdésre, miszerint szeretnénk-e használni az automatikus sarokpont detektort, válasszuk az alapbeállítást (nyomjunk ENTER-t).
    Do you want to use the automatic square counting mechanism (0 = [] = default) 
    or do you always want to enter the number of squares manually (1, or other)?
    
  6. A program ekkor kiírja az alábbi feliratot és egy külön ablakban megjelenik az első kép, ahol a kézzel ki kell jelölnünk a kalibrációs minta négy sarkát megfelelő sorrendben. A legelső pont lesz az origó, figyeljünk rá, hogy minden további képen kövessük ezt a sorrendet!
    Processing image 1...
    Using (wintx,winty)=(5,5) - Window size = 11x11     (Note: to reset the window size run script clearwin)
    Click on the four extreme corner of the rectangular complete pattern (the first clicked corner is the origin)
    
    Sarokpontok kiválasztása Ha kijelöltük mind a négy sarokpontot, akkor a rendszer kirajzolja nekünk azt a négyzetet, amely illeszkedik a megjelölt sarokpontokra.
  7. Ezután megkérdezi, hogy mekkor a dX és dY méret. Ez tulajdonképpen a sakktábla-minta négyzeteinek pontos fizikai mérete mm-ben. Válasszuk itt is alapbeállítást.
    Size dX of each square along the X direction ([] = 30mm) 30
    Size dY of each square along the Y direction ([] = 30mm) 30
    
    Ezt követően a program piros keresztekkel jelöli meg a sakktáblán a sarokpontokat. Megkérdezi, hogy akarunk-e radiális torzítást beállítani. Erre válasszuk az alapbeállítást (NEM).
    If the guessed grid corners (red crosses on the image) are not close to the  actual corners it is neccessary to enter an initial guess for the radial distorsion factor kc (useful for the subpixel detection)
    Need of an initial guess for radial distorsion ([] = no, other = yes).
    
    Ezt követően a program kiírja a Corner extraction ... feliratot a konzolra és kék négyzetekkel jelöli meg a sarokpontokat a képen.
  8. Végezzük el a négy sarokpont kijelölését a többi képen is! Ügyeljünk arra, hogy minél pontosabban jelöljük meg a pontokat.
  9. Ezt követően kattintsunk a Camera Calibration Toolbox főablakában a Calibration gombra. A program számolni kezd, majd kiírja a belső paramétereket. kamera kalibráció - belso paraméterek
  10. Ellenőrizzük a visszavetítési hibát! Kattintsunk a Calibration Toolbox főablakában a Reproject on images gombra. A program megkérdezi tőlünk, hogy minden képre szeretnénk-e számolni a hibát. Nyomjunk ENTER-t az alapértelmezett válaszként (vagyis, hogy igen, minden képre számolja ki a hibát).
    Number(s) of image(s) to show ([] = all images)
    
    Ezt követően kiszámolja a visszavetítéseket és a hibát minden képre, a képeken körökkel jelöli meg a visszavetített pontokat. Valamint egy diagramban is ábrázolja a visszavetítési hibát minden pont esetében. Projection error
  11. Nézzük meg a külső paramétereket is. Kattintsunk a Camera Calibration Toolbox főpaneljén a Show extrinsic gombra. Egy újabb ablakban bemutatja a rendszer nekünk, hogy a kamerához képest hol helyezkedtek el a síkok. Külső paraméterek Az ablak alján találunk egy gombot, amellyel meg tudjuk változtatni a világ koordinátarendszer origóját, vagyis hogy a síkhoz képest nézzük a kamera pozíciókat, vagy pedig a kamerához képest nézzük a síkok helyzetét. Külső paraméterek
  12. Mentsük el a kamera mátrixot. A Camera Calibration Toolbox főpaneljén kattintsunk az Export Calib Data gombra. Így el tudjuk menteni a kamera mátrixot, és a Load gombbal be tudjuk tölteni a következő alkalommal.