Warning
This page is located in archive.

USB kamera Chameleon

Kamera Chameleon je digitální USB 2.0 kamera Chameleon vyráběná firmou PointGrey.

Ovládání kamery

Kameru je možno obsluhovat v MATLABu použitím Image Acquisition Toolboxu.

  1. Ke kameře přistoupíte příkazem
    vid = videoinput('winvideo',1,'Y800_1280x960');
  2. Pokud je potřeba změnit parametry snímání (v defaultním nastavení je kamera plně automatická), lze pro manuální nastavení použít skript:
    inspect(getselectedsource(vid));
    nebo pro přímé nastavení hodnoty příkaz:
    set(getselectedsource(vid), 'PropertyName', 'PropertyValue');
    Pokud je potřeba zjistit aktuální hodnot parametru je možné využít příkaz
    get(getselectedsource(vid), 'PropertyName');
    Užitečné informace lze získat voláním funkce
    propoinfo(getselectedsource(vid), 'PropertyName');
    POZOR: Většinu parametrů ovlivňujících snímání obrazu je možné nastavit jen pokud neprobíhá snímání (nebyl zavolán “start(vid)”).
  3. K zahájení snímání nekonečného video streamu použijte příkazy
    set(vid,'TriggerRepeat',Inf);
    vid.FrameGrabInterval = 1;
    start(vid);
  4. Přečtení snímku z bufferu proběhne voláním
    im = getdata(vid,1);
  5. Kamera poskytuje video ve formátu RAW, před zpracováním obrazu z kamery je tedy nutno provést jeho “debayerizaci”. To lze provést například pomocí následujících příkazů. Nepodařilo se nám zjistit, jak v prostředí MATLABu změnit vyvážení bílé pro modrý kanál, je jej tedy nutné přenásobit vhodným číslem
    im_debay(:,:,1) = im(2:2:end,1:2:end);
    im_debay(:,:,2) = im(1:2:end,1:2:end)/2 + im(2:2:end,2:2:end)/2;
    im_debay(:,:,3) = 6.5 * im(1:2:end,2:2:end);
  6. Nakonec je dobré po sobě uklidit sekvencí příkazů
    stop(vid);
    delete(vid);

Nastavení parametrů kamery

Jak je uvedeno výše lze v prostředí Matlab nastavovat některé parametry snímání kamery. Tyto parametry ovlivňují obraz, který bude poskytován kamerou, a jsou proto důležité pro úspěšné použití kamery. Popis významu nastavovaných parametrů v dokumentaci kamery je velmi omezený. Proto jsme provedli omezený průzkum a testování za účelem zjištění možností nastavení parametrů snímání.

Bohužel rozhraní v Matlabu neumožňuje nastavení všech parametrů snímání. Nastavit je možné tyto parametry:

Gain - Tímto parametrem lze měnit zisk zesilovače video signálu. S rostoucím ziskem roste jas v obraze, ale bohužel také šum. Pokud to není nutné z jiných důvodů (např. udržení krátkého času závěrky) doporučujeme nastavit zisk na 1.0 ~ 0dB (výstup = vstup). Hodnotě zisku 0dB odpovídá hodnota parametru 160.

set(getselectedsource(vid),'GainMode','manual');
set(getselectedsource(vid),'Gain',160);

Gamma - Nastavuje míru nelineárního zesílení obrazového signálu. Nelineárním přenosem se kompenzují vlastnosti zobrazovacího zařízení a vnímání pozorovatele (detaily např. Wikipedia: Gamma correction). Pro zpracování počítačem nemá dodatečná nelineární kompenzace význam. Naopak tato kompenzace může snížit pro některé jasové úrovně přesnost měření. Proto doporučujeme nastavit snímání bez kompenzace, kterému odpovídá gamma = 1.0. Absolutní hodnotě gamma 1.0 odpovídá hodnota parametru 1024.

set(getselectedsource(vid),'GammaMode','manual');
set(getselectedsource(vid),'Gamma',1024);

WhiteBalance - Vyvážení bíle určuje jaké poměry hodnot barevného signálu (RGB složky) budou odpovídat snímání bílé barvy (Wikipedia: White balance). V případě kamery Chameleon není nastavení vyvážení bíle správně implementováno a implementovaný algoritmus není popsán. S natavením je možné experimentovat. Pokud není třeba využít barevného obrazu doporučujeme manuální nastavení tohoto parametru na implicitní hodnotu 100.

set(getselectedsource(vid),'WhiteBalanceMode','manual');
set(getselectedsource(vid),'WhiteBalance',100);

Brightness - Jas je souhrnný parametr, kterým může i méně poučený uživatel nastavit celkové jasové podání obrazu. Tento parametr však nemá přímý fyzikální význam. V případě nastavené automatické volby “Shutter” a “Gain” ovlivňuje tyto hodnoty. Způsob určení jasu obrazu a algoritmus nastavení fyzikálních parametrů snímání na jeho základě je dán programovým vybavením kamery a nebývá výrobce detailně popsán. V našem případě, pokud je “Shutter” a “Gain” nastavována manuálně (ne automaticky), pak nemá parametr “Brightness” žádný vliv na nastavení kamery.

Bohužel z prostředí Matlab nelze nastavovat přímo čas závěrky (“Shutter”). Je však možné k tomuto účelu použít právě parametr “Brightness”. Pokud nastavíme prostřednictvím programu Amcap Shutter do režimu auto a nastavíme vhodnou konstantní hodnotu parametr “Exposure”, pak je možné pomocí parametru “Brightness” měnit čas závěrky (“Shutter”). Je však třeba počítat s tím, že čas závěrky bude na změny “Brightness” se zpožděním, daným časovými konstantami automatického nastavení kamery.

Pro všechny výše uvedené parametry existuje vždy párový parametr “NameMode”. Tento párový parametr určuje, která hodnota bude manuálně nastavována a která bude nastavena automaticky. Automatické nastavení zajišťuje přímo kamera. Při automatickém nastavení je však nutné vzít v úvahu časové konstanty algoritmu nastavení. K ustálení automaticky nastavovaných hodnot po změně parametrů je třeba cca 1s (hrubé zjištění).

Pro sledování změn parametrů, rychlé testován vlivu změn parametrů na obraz a nastavení parametrů z prostředí Matlab je vhodné využít programu Amcap (dodává výrobce kamery). Běh programu Amcap souběžně se snímáním obrázků v prostředí Matlab se nedoporučuje. Problémem může být:

  • Nepravidelné rozdělení snímků mezi oba programy. To je zvláště nepříjemné při časově kritickém zpracování obrazu (uzavření zpětnovazební smyčky), kdy není konstantní ani perioda zpracovaní ani dopravní zpoždění.
  • Degradace obrazu (rozsypání) při použití rozdílných rozlišení obrazu.
help/common/kamera_matlab_chameleon.txt · Last modified: 2018/02/03 10:49 (external edit)