Warning
This page is located in archive.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

help:common:kamera_matlab_chameleon [2012/03/13 16:44]
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]]. 
  
-==== 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)