CourseWare Wiki
Search
Log In
b241
help
common
kamera_matlab_chameleon
Differences
This shows you the differences between two versions of the page.
View differences:
Side by Side
Inline
Go
Link to this comparison view
Go
Go
help:common:kamera_matlab_chameleon [2012/03/13 16:33]
krsek
help:common:kamera_matlab_chameleon [2018/02/03 10:49]
Line 1:
Line 1:
-
==== USB kamera Chameleon ====
-
Kamera Chameleon je digitální USB 2.0 kamera //[[http://www.ptgrey.com/products/chameleon/Chameleon_datasheet.pdf|Chameleon]]// vyráběná firmou [[http://www.ptgrey.com|PointGrey]].
-
==== Základní ovládání kamery ====
-
Kameru je možno obsluhovat v MATLABu použitím [[http://www.mathworks.com/access/helpdesk/help/toolbox/imaq/f9-75080.html|Image Acquisition Toolboxu]].
-
-
- Ke kameře přistoupíte příkazem <code>vid = videoinput('winvideo',1,'Y800_1280x960');</code>
-
- 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: <code>inspect(getselectedsource(vid));</code> nebo pro přímé nastavení hodnoty příkaz: <code>set(getselectedsource(vid), 'PropertyName', 'PropertyValue');</code> Pokud je potřeba zjistit aktuální hodnot parametru je možné využít příkaz <code>get(getselectedsource(vid), 'PropertyName');</code> Užitečné informace lze získat voláním funkce <code>propoinfo(getselectedsource(vid), 'PropertyName');</code> **<fc #FF0000>POZOR:</fc> 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)").**
-
- K zahájení snímání nekonečného video streamu použijte příkazy <code>set(vid,'TriggerRepeat',Inf);
-
vid.FrameGrabInterval = 1;
-
start(vid);</code>
-
- Přečtení snímku z bufferu proběhne voláním <code>im = getdata(vid,1);</code>
-
- Kamera poskytuje video ve formátu RAW, před zpracováním obrazu z kamery je tedy nutno provést jeho "[[http://en.wikipedia.org/wiki/Bayer_filter|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 <code>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);</code>
-
- Nakonec je dobré po sobě uklidit sekvencí příkazů <code>stop(vid);
-
delete(vid);</code>
-
-
==== 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**//. <code>
-
set(getselectedsource(vid),'GainMode','manual');
-
set(getselectedsource(vid),'Gain',160);</code>
-
-
**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ř. [[http://en.wikipedia.org/wiki/Gamma_correction|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**//. <code>
-
set(getselectedsource(vid),'GammaMode','manual');
-
set(getselectedsource(vid),'Gamma',1024);</code>
-
-
**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 ([[http://en.wikipedia.org/wiki/White_balance|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**//. <code>
-
set(getselectedsource(vid),'WhiteBalanceMode','manual');
-
set(getselectedsource(vid),'WhiteBalance',100);</code>
-
-
**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)