SlideShare a Scribd company logo
1 of 40
Download to read offline
SmartVision SDK – uživatelský manuál




                  Uživatelský manuál
                                       Revize manuálu: 1.8

                             Kompatibilita s verzí SmartVision: 1.0.28

                                Datum uvolnění revize: 23.4. 2013




Workswell s.r.o. | SmartVision SDK                                       1
SmartVision SDK – uživatelský manuál



Úvod
SmartVision SDK je sada vývojových nástrojů pro implementaci videoaplikací. Obsahuje širokou sadu
ovladačů (SmartVision Runtime Package), dll videoknihovnu (SmartVision library) a testovací aplikace
(TestApp).

Knihovna SmartVision library je univerzální DLL knihovna pro získání videoobrazu, implementaci a
návrh obrazových algoritmů. Knihovna podporuje připojení na protokoly GigE, USB 2.0, USB 3.0,
CameraLink, Fast Ethernet MJPEG, IEEE 1394 Firewire od více jak 47 výrobců kamer a videohardwaru.

Využitím formátu DLL je možné tuto knihovnu využít v programovacím jazyce C, C++, C#, Visual Basic,
Matlab, Labview a všech prostředích podporujících import DLL funkcí.

Díky snadnému rozhraní je možné přistupovat k příslušnému kamerovému systému vždy stejným
principem a získat kompletní kontrolu nad používaným videohardwarem. Vývojář tak může použít
jednu knihovnu pro návrh aplikací s odlišnými videorozhraními od protokolu GigE až po USB.

SmartVision library obsahuje také pomocné aplikace pro efektivní průzkum připojeného
videohardwaru. Aplikace CameraExplorer dovoluje uživateli zobrazit připojený videohardware a
vypsat všechny čtecí a zápisové parametry videosystému. Pomocí sady GET a SET funkcí je možné
plně ovládat a nastavovat videohardware. Otevření a ukončení videostreamu je díky funkci
OpenSession a CloseSession velmi jednoduché a rychlé. Zobrazení aktuálního obrazu je umožněno jak
pomocí již předpřipraveného videookna, tak i pomocí čtení z matice RGB dat z příslušného bufferu
pomocí. Obraz lze zaznamenat také jednoduše pomocí vyfocení aktuální scény (funkce MakeSnap) či
přímo pomocí reference přistupovat na blok dat ve videopaměti a tím dosáhnout maximální
obnovovací frekvence obrazové informace z kamerového systému. Oranžové bloky níže ukazují části
vývojové sady SmartVision SDK.


 Testovací aplikace TestApp SmartVision

Vývojové prostředí IDE pro vývoj koncové                   SmartVision library (sada DLL funkcí pro
aplikace (C#, C/C++, Matlab, Labview, atd.)                    ovládání a zpracování obrazu
                                                                     z videohardwaru)

                     Operační systém Windows (XP, Vista, 7 - 32bit a 64bit)



       SmartVision Runtime Package (sada ovladačů a přímý přístup na videohardware)



                   Videohardware a kamery (Ethenet, USB, CameraLink, PCI)

2                                                  Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál




SmartVision SDK - uživatelský manuál




Workswell s.r.o. | SmartVision SDK     3
SmartVision SDK – uživatelský manuál

Vyvázání se že záruky

Všechny výrobky (software, hardware či firmware) společnosti Workswell s.r.o. mají záruku proti výrobním vadám po dobu
dvou let. Tuto záruku lze uplatnit pouze, pokud byl výrobek skladován a používán podle pokynů uvedených v příslušné
příručce.

Záruka se vztahuje pouze na původního kupce a je nepřenositelná. Záruku nelze uplatnit na výrobek, který byl nesprávně
používán, neudržován, poškozen nebo provozován při podmínkách, které manuál nestanovuje jako podmínku provozní.

Jestliže dojde k poškození výrobku, který je kryt zárukou, výrobek nesmí být dále používán, aby se zabránilo dalšímu
poškození. Zákazník musí neprodleně oznámit tuto závadu společnosti Workswell nebo jím autorizovanému distributorovi,
jinak nebude možné záruku uplatnit.

Společnost Workswell zdarma opraví nebo vymění každý vadný výrobek, jestliže bude na základě odborné prohlídky
prokázána u výrobku vada materiálu či výrobku a jestliže bude tento výrobek vrácen společnosti Workswell v záruční době,
tj. do dvou let od data nákupu.

Výrobek nesmí být společnost Workswell otevírán nebo upravován.

Společnost Workswell nenese odpovědnost za vady výrobku kromě výše uvedených a neposkytuje na ně záruku. Žádná další
záruka není vyjádřena ani předpokládána. Společnost Workswell nenese odpovědnost za neodborné použití výrobku ani za
škody způsobené nesprávnou činností, instalací či funkcí výrobku třetím stranám či samotnému uživateli.

Autorská práva
© Workswell s.r.o. Všechna práva celosvětově vyhrazena. Bez předchozího písemného souhlasu společnosti Workswell
s.r.o. nesmí být žádná část software či hardware včetně zdrojového kódu a zdrojových souborů reprodukována, přenášena,
přepisována nebo překládána do jakéhokoli umělého či přirozeného jazyka, pokud není výsledně uvedeno jinak.

Názvy a značky uvedené na výrobcích v této příručce jsou registrovanými ochrannými známkami nebo ochrannými
známkami společnosti Workswell s.r.o. Všechny ostatní ochranné známky nebo názvy společností zmíněné v této příručce a
manuálu se používají pouze pro identifikaci a jsou majetkem jejich příslušných vlastníků.




4                                                            Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál




Workswell s.r.o. | SmartVision SDK     5
SmartVision SDK – uživatelský manuál



Obsah
Úvod ........................................................................................................................................................ 1
Obsah....................................................................................................................................................... 6
Varování a upozornění ............................................................................................................................ 7
Obsah standardního dodání .................................................................................................................... 8
Informace pro uživatele .......................................................................................................................... 9
Nápověda a dotazy ................................................................................................................................ 10
Požadavky na hardware PC ................................................................................................................... 11
Aktualizace a kompatibilita ................................................................................................................... 12
Licenční systém SmartVision ................................................................................................................. 15
Instalace SmartVision SDK ..................................................................................................................... 20
Spouštění TRIAL verze ........................................................................................................................... 26
Popis balíku SmartVision SDK ................................................................................................................ 27
SmartVision library DLL funkce.............................................................................................................. 29
Tutoriál pro vývoj v jazyce C# ................................................................................................................ 40




6                                                                                 Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál



1                Varování a upozornění
Varování         Před použitím výrobku zkontrolujte, zda nejeví viditelné známky poškození či
                 nesprávné funkce. Pokud je zařízení poškozené či jinak vadné, nepoužívejte jej.

Upozornění       Nepoužívejte a neskladujte zařízení v rozporu se skladovacími a provozními
                 podmínkami stanovenými v této příručce (týká se jen hardware).
                 Jakékoliv zásahy a necertifikované servisní úkony do výrobku vedou
                 k automatické ztrátě záruky




Workswell s.r.o. | SmartVision SDK                                                             7
SmartVision SDK – uživatelský manuál



2                Obsah standardního dodání
CD              Součástí standardního zakoupeného CD SmartVision SDK jsou tyto části:
                       Sada ovladačů SmartVision Runtime Package
                       DLL knihovna SmartVision library
                       Testovací aplikace a tutorial TestApp
                       Příručka SmartVision SDK - Uživatelský manuál.



SmartVision     Součástí standardního dodání je samoinstalační aplikace SmartVision Runtime
Runtime         Package, která obsahuje ovladače na kompatibilní videohardware. Tato aplikace
Package         nainstaluje na příslušný počítač sadu driverů pro videohardware a kamery. Některé
                z těchto ovladačů využívají také sadu MAX od společnosti National Instruments a
                dalších společností. Společnost Workswell s.r.o. plně uznává veškeré licenční
                ujednání se společností National Instruments a veškeré poplatky za užívání tohoto
                modulu ve svém vývojovém nástroji SmartVision SDK.

Dokumentace     S výrobkem SmartVision SDK je dodáván Uživatelský manuál (tj. dokument, který
                právě čtete), který je uložen na oficiálním CD.




8                                                 Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál



3                Informace pro uživatele
Typografické     V této příručce se používají následující typografické konvence:
konvence                VELKÁ PÍSMENA se používají pro názvy kláves, tlačítek a položek menu,
                        COURIER se používá pro ukázky zdrojových kódů, názvy souborů a
                         souborové cesty,
                        kurzíva se používá pro důležité informace a názvy dokumentů,
                        tučné písmo je použito při odkazu na jinou kapitolu, názvy funkcí či
                         internetové odkazy

Nápověda a       S technickými dotazy, na které vám nepomohla najít odpověď tato příručka, se
uživatelské      obraťte na svého prodejce, nebo přímo na stránky produktu na internetové
fórum            adrese http://www.workswell.cz, kde nejprve vyhledejte odpověď v
                 uživatelském fóru a pokud odpověď na svůj dotaz nenaleznete, zašlete dotaz na
                 email info@workswell.cz

Aktualizace      Prioritním cílem společnosti Workswell je dodávat své výrobky v takové podobě,
                 aby splňovala aktuální potřeby svých uživatelů a zároveň, aby byly co nejrychleji
                 odstraněny všechny nedostatky, které byly při jejich užívání nalezeny. Z tohoto
                 důvodu společnost Workswell ve všech svých výrobcích pravidelně uvolňuje
                 aktualizace. Více informací naleznete v kapitole Aktualizace a kompatibilita.

Firmware         Firmware je „interní“ řídicí program zařízení. Z uživatelského pohledu je
                 podstatná pouze aktuální verze firmware, která je nahrána v právě používaném
                 zařízení a videohardwaru.




Workswell s.r.o. | SmartVision SDK                                                               9
SmartVision SDK – uživatelský manuál



4                Nápověda a dotazy
Obecný postup    Při hledání odpovědi na technický problém doporučujeme dodržovat následující
                 postup:
                        pokuste se nalézt odpověď v této příručce,
                        obraťte se na svého prodejce zařízení,
                        prostudujte stránky společnosti Workswell s.r.o. na adrese
                         http://www.workswell.cz,
                        či napište na email info@workswell.cz.




10                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál



5                Požadavky na hardware PC
Verze            SmartVision SDK byl testován pro 32 a 64 bitové verze operačního systému
operačního       Windows následujících verzí:
systému                 Windows XP
                        Windows 7 32bit
                        Windows 7 64bit

                 Na jiných verzích operačního systému Windows nebyl SmartVision SDK testován
                 a společnost Workswell nezaručuje na těchto verzích Windows správnou funkci
                 jednotlivých částí.
                 V případě, že používáte Windows XP SP2 resp. Windows 7, je nutná aktualizace na
                 vyšší verzi Windows XP SP3 resp. Windows Vista SP1 před zahájením instalace
                 jednotlivých částí SmartVision SDK. Jako prerekvizity a správné používání DLL
                 videoknihovny SmartVision library je potřeba do operačního systému
                 doinstalovat:

                        .NET Framework 3.5 a vyšší (ve Windows 7 je již nainstalován)
                        SmartVision Runtime Package (součástí SmartVision SDK)



Konfigurace PC   Minimální konfigurace pro SmartVision SDK na operační systém Windows 7 je
                 následující:
                        Procesor Intel: min. 2 GHz
                        paměť: min. 2 GB RAM,
                        pevný disk: min. 100 GB,
                        Gigabitový Ethernetový port s řadičem Intel podporující Jumboframe min.
                         9kB,
                        klávesnice a myš,
                        grafický adaptér a monitor s odpovídajícím rozlišením.




Workswell s.r.o. | SmartVision SDK                                                            11
SmartVision SDK – uživatelský manuál



6                Aktualizace a kompatibilita
Aktualizace     Nejnovější verze SmartVision SDK ,tj. jak SmartVision Runtime Package, tak
SmartVision     videoknihovny SmartVision library ale i příslušných tetovacích aplikací naleznete na
SDK             webových stránkách www.workswell.cz , kde je umístěna nejnovější verze těchto
                částí. Vzhledem k požadavku, na co nejrychlejší úpravu a opravu knihovny si
                společnost Workswell, vyhrazuje právo na zasílání upozornění na nejnovější update
                SmartVision SDK na uživatelský email zákazníka. Výrazně však doporučujeme
                pravidelně kontrolovat nejnovější verze SmartVision Runtime Package a SmartVision
                library.

                V případě použití nových verzí stačí jednoduše přeinstalovat příslušnou stávající
                SmartVision library. Vždy však doporučujeme, aby zákazník stahoval současně, jak
                SmartVision Runtime Package tak také SmartVision library pro bezproblémový chod
                nových i stávajících funkcí na příslušném videohardwaru.

Kompatibilni   SmartVision library pomocí modulu SmartVision Runtime Package umí přistupovat
videohardware k několika stovkám druhů videohardwaru, ať už se jedná o kamery, termokamery či
a zdroje videa videograbbery. Základem je obsáhlá databáze ovladačů pro snadné napojení
               videohardwaru, ať s nutností či bez příslušného videograbberu. Uživatel tak není
               nucen instalovat jiné ovladače a může se věnovat samostatnému zpracování
               videodat. Mezi podporované protokoly patří:

                    1) Paralelní digitální rozhraní s příslušným videograbberem
                       - TTL rozhraní
                       - RS422
                       - LVDS

                    2) CameraLink protokol s příslušným videograbberem

                    3) Gigabit Ethernet (GigE) protokol s a bez nutnosti videograbberu

                    4) Fast Ethernet IP protokol s a bez videograbberu
                       - MJPEG

                    5) IEEE 1394 Firewire protokol s a bez nutnosti videograbberu
                       - IIDC (DCAM)

                    6) USB 2.0 protokol bez nutnosti videograbberu
                       - DirectShow produkty jako jsou webkamery, mikroskopy, skenery, apod.

                    7)    USB 3.0 protokol bez nutnosti videograbberu
                         - AIA USB3 Vision produkty

                Všechny výše uvedené rozhraní jsou podporovány s framegrabbery společnosti
                National Instruments, popř. s jejími kompatibilními klony pro rozhraní PCI,
                PCIexpress. Pro některé druhy rozhraní není nutné dokupovat speciální
                videograbbery a lze použít standardní integrované porty v PC, je však nutné zajistit
                příslušné parametry videopřenosu, definované v jednotlivých standardech IEEE či
                AIA.

12                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál


                Vzhledem k velkému počtu a množství každoročně vyráběných typů zařízení,
                nemůže společnost Workswell s.r.o. garantovat podporu všech výše uvedených
                protokolů u všech výrobců. Proto doporučujeme před zakoupením SmartVision SDK
                kontaktovat příslušného prodejce SmartVision SDK či technickou podporu
                společnosti Workswell ohledně výsledné kompatibility SmartVision SDK a cílového
                videohardwaru. Za případné nekompatibility SmartVision SDK a příslušného
                videohardwaru či kamery nenese společnost Workswell s.r.o. žádnou zodpovědnost.


Dokumentace     Na oficiálních stránkách společnosti Workswell s.r.o. naleznete všechny příslušné
                dokumentační listy, uživatelské manuály či technické informace. Pro technický dotaz
                či nápovědu postupujte dle kapitoly Nápověda a dotazy.



Podporovaní     Mezi podporované výrobce videohardwaru patří tyto společnosti:
výrobci             1)    Adimec CCD Cameras
                    2)    Allied Vision Technologies
                    3)    Atmel Corporation
                    4)    Basler Vision Technologies
                    5)    Baumer Optronic
                    6)    Cohu Inc.
                    7)    Costar Imaging
                    8)    DVC Company
                    9)    Dalsa
                    10)   Flir Systems AB
                    11)   Fairchild Imaging
                    12)   Flovel Co.
                    13)   Hamamatsu
                    14)   Hitachi Kokusai Electronic
                    15)   Imaging Solutions
                    16)   Imperx
                    17)   Indigo Systems
                    18)   JAI
                    19)   Jenoptik Optical System
                    20)   Mikrotron
                    21)   NET GmbH
                    22)   National Instruments
                    23)   PCO AG
                    24)   Perkin Elmer Optoelectronics
                    25)   Photonfocus
                    26)   PixeLINK
                    27)   Point Gray Research
                    28)   Prosilica Inc.
                    29)   Pulnix
                    30)   QImaging Corporation
                    31)   Raytheon Commercial Infrared
                    32)   Redlake MASD Inc.
                    33)   SVS Vistek
                    34)   Sentech
                    35)   Sensors Unlimited

Workswell s.r.o. | SmartVision SDK                                                              13
SmartVision SDK – uživatelský manuál


                    36)   Sensovation AG
                    37)   Silicon Imaging
                    38)   Smartek
                    39)   Sony
                    40)   Takex
                    41)   The Imaging Source
                    42)   Toshiba
                    43)   UNIQ Vision Inc
                    44)   VDS Vosskuhler
                    45)   Vieworks
                    46)   E2v
                    47)   iSVi




14                                             Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál



7                Licenční systém SmartVision
Popis           Součástí knihovny SmartVision library je také nástroj pro udělení licence pro dané
licenčního      PC, resp. aplikaci, která využívá knihovny SmartVision library. Lincenční nástroj je
systému a       automaticky spuštěn při instalaci knihovny SmartVision library (nutné nejdříve
přidělení
                nainstalovat modul SmartVision Runtime Package). Proto doporučujeme dokončení
licence
                procesu licencování již při samotné instalaci knihovny SmartVision library.

                V případě budoucích změn v licenci, či zakoupení FULL verze a přechodu z TRIAL
                verze je možné spustit licenční systém manuálně. K těmto účelům slouží program
                SmartVision Activator . Odkaz na SmartVision Activator je umístěn ve Start nabídce
                v cestě "Všechny programyWorkswell SmartVision".

                Podmínkou správného spuštění je nutnost spustit SmartVision Activator s
                administrátorskými právy.

                Bez aktivace jedné z verzí (tj. FULL či TRIAL) nebude knihovna SmartVision library
                funkční. TRIAL verze funguje pouze s aktivním připojením k internetu a je platná po
                dobu 7-dní bez omezení.

                K aktivaci FULL verze je nutné zakoupit sériové číslo ke knihovně SmartVision library
                od společnosti Workswell a zadat ho buď při instalaci, či manuálně přes nástroj
                SmartVision Activator. Aktivaci je možné provést, pouze pokud je počítač připojen
                k internetu. Při zadávání zákaznických informací do formulářů si společnost
                Workswell vyhrazuje právo uložit tyto informace na licenčním serveru společnosti a
                zároveň se zavazuje, že tyto informace neposkytne třetím stranám a jiným
                obchodním subjektům. V následujícím průvodci jsou ukázány správné kroky pro
                úspěšné přidělení licence:

                    1) Spuštění licenčního systému pomocí aplikace SmartVision Activator




Workswell s.r.o. | SmartVision SDK                                                                15
SmartVision SDK – uživatelský manuál



                    2) Volba typu licence – TRIAL či FULL v aplikaci SmartVision Activator




                    3) Vyplnění informací a sériového čísla pro verzi TRIAL a FULL v aplikaci
                       SmartVision Activator




16                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál




                    4) Odesílání uživatelských informací na licenční server Workswell




                    5) Úspěšné odeslání žádosti na licenční server Workswell




Workswell s.r.o. | SmartVision SDK                                                      17
SmartVision SDK – uživatelský manuál




                    6) Zaslání potvrzovacího emailu z licenční serveru Workswell
                    - Po zaslání žádosti o TRIAL verzi Vám přijde na zadaný email potvrzovací
                       zpráva, kterou je nutné aktivovat.




                    7) Úspěšné dokončení instalace a licenčního systému Workswell
                    - Po potvrzení a odsouhlasení licenčních podmínek a potvrzení serverem se
                       Vám zobrazí úspěšné dokončení celého procesu.




18                                              Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál


Deaktivace       Společnost Workswell umožňuje přenos již zakoupené licence knihovny SmartVision
platné FULL      library na jiné PC. Důvodem přenosu může být upgrade či oprava stávajícího PC,
licence a        popřípadě možnost implementace videoaplikace na jiném než cílovém PC. K těmto
přenos na jiné
                 účelům slouží aplikace SmartVision Deactivator
PC

                 Pokud budete chtít přenést licenci FULL verze na jiný počítač, je nutné na aktuálním
                 počítači s instalovaným SmartVision library, kde byla licence aktivována, spustit
                 deaktivační software SmartVision Deactivator. Tento program je nutné spustit s
                 administrátorskými právy. Deaktivaci je možné provést pouze pokud je aktuální
                 počítač připojen k internetu. Součástí licenčních podmínek je podmínka, že na
                 každém počítači využívající DLL funkce z knihovny SmartVision library musí být
                 zakoupena FULL licence či alespoň aktivní TRIAL verze knihovny. V opačném
                 případě, se zákazník vystavuje soudnímu řízení.

                 Na následujícím obrázku je ukázána správná deaktivace systému a postup:

                 1)    Spuštění deaktivačního nástroje a zadání sériového čísla




Workswell s.r.o. | SmartVision SDK                                                                 19
SmartVision SDK – uživatelský manuál



8                Instalace SmartVision SDK
Instalace       SmartVision SDK se skládá z několika modulů, z nichž základním je instalace sady
SmartVision     ovladačů pro možnost připojení na videohardware, tedy před samotným
Runtime         používáním DLL videoknihovny SmartVision library. Tato sada ovladačů je nazývána
Package         SmartVision Runtime Package a nainstaluje na cílovou stanici či PC s operačním
                systémem Windows všechny potřebné ovladače. Seznam podporovaného hardwaru
                a zdrojů videosignálu naleznete v kapitole Aktualizace a kompatibilita. SmartVision
                SDK díky modulu SmartVision Runtime Package podporuje více než 47 výrobců
                videohardwaru a kamer. V následujícím odstavci je popsán bod po bodu instalační
                proces SmartVision Runtime Package:


                    1) Spuštění a extrakce SmartVision Runtime Package samoinstalačního balíku




                    2) Inicializace instalačního procesu SmartVision Runtime Package




20                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál




                    3) Přehled licencovaných sad ovladačů pro kompatibilní videohardware a
                       spuštění instalace SmartVision Runtime Package




                    4) Instalační proces SmartVision Runtime Package




Workswell s.r.o. | SmartVision SDK                                                     21
SmartVision SDK – uživatelský manuál




                    5) Dokončení instalace a restart počítače a opětovné spuštění operačního
                       systému

                    -   Po instalaci SmartVision Runtime Package prosím proveďte manuální restart
                        počítače. Během tohoto restartu se propojí a inicializují všechny potřebné
                        ovladače pro budoucí videohardware a kamery.




22                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál


Instalace       Po úspěšné instalaci sady SmartVision Runtime Package je nutné spustit instalaci
SmartVision     DLL knihoven SmartVision library. Díky této instalaci se do operačního systému
library         nainstalují DLL knihovny pro budoucí vývoj a přístup na kamerový systém a
                videohardware, zároveň se prováží tyto DLL knihovny s balíkem SmartVision
                Runtime Package.
                Průchod instalací popisuje následující průvodce. Na konci této instalace je potřeba
                provézt volbu licence. Pro zkušební účely je povoleno využívat 7denní TRIAL verzi,
                kde si můžete vyzkoušet chování a vývoj aplikace s knihovnou SmartVision library.
                Po celou dobu používání v TRIAL verzi je nutné být připojený k internetu, neboť
                během této doby se kontrolují licenční podmínky se serverem společnosti
                Workswell. V případě, že uživatel chce využívat DLL funkce pro budoucí aplikaci i
                v offline režimu a na dobu neomezenou, je nutné zakoupit SmartVision SDK u
                společnosti Workswell a aktivovat FULL verzi. Po zakoupení Vám bude zasláno
                sériové číslo, které bude ověřeno přes licenční server a následně povolena trvalá
                licence pro daný počítač. Samotná licence a nákup jednoho sériového čísla se váže
                vždy a pouze na jeden počítač, na kterém je SmartVision library spuštěno a
                využíváno.


                   1)   Spuštění instalace a extrakce SmartVision library




Workswell s.r.o. | SmartVision SDK                                                              23
SmartVision SDK – uživatelský manuál




                        2) Inicializace instalace SmartVision library




                        3) Přehled instalačních pluginů, modulů a prvků SmartVision library




24                                                 Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál




                        4) Zahájení instalace a správný proces kopírování SmartVision library




                        5) Dokončení instalace SmartVision library




                        6) Poinstalační spuštění licenčního systému SmartVision library


                             - Po dokončení instalace DLL knihovny SmartVision library je potřeba
                               projít licenčním procesem. Tento proces je automaticky spuštěn po
                               dokončení instalace SmartVision library. Přesný postup a popis je
                               popsán v kapitole Licenční systém SmartVision.




Workswell s.r.o. | SmartVision SDK                                                              25
SmartVision SDK – uživatelský manuál




9                Spouštění TRIAL verze
Spouštění       Pokud je na počítači aktivována TRIAL verze, při každém spuštění knihovny
TRIAL verze     SmartVision library (nebo aplikace Camera Explorer) se zobrazí vyskakovací okno
                ovladačů videohardwaru od společnosti National Instruments oznamující, že balík
                ovladačů této společnosti běží také ve zkušební verzi.

                Okno je nutné zavřít stisknutím jednoho z tlačítek Evaluate nebo Cancel.




26                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál



10               Popis balíku SmartVision SDK
SmartVision     Součástí standardního dodání SmartVision SDK je sada ovladačů SmartVision
Runtime         Runtime Package. Ta obsahuje ovladače na kompatibilní videohardware a kamerový
Package         systém. Tato část zajišťuje kompatibilitu a přímý přístup na velké množství
                videohardwaru a jednotné rozhraní pro knihovnu SmartVision library. Kompletní
                soupis podporovaného hardwaru naleznete v sekci Aktualizace a kompatibilita.

                Některé z těchto ovladačů využívají také sadu MAX od společnosti National
                Instruments a dalších společností. Společnost Workswell s.r.o. plně uznává veškeré
                licenční ujednání se společností National Instruments a veškeré poplatky za užívání
                tohoto modulu ve své knihovně SmartVision library a SmartVision Runtime
                Package.


Camera          Po úspěšné instalaci SmartVision library se Vám do počítače nainstaluje také
Explorer        pomocná aplikace Camera Explorer. Tato aplikace slouží k vygenerování seznamu
                parametrů z aktuálně připojené kamery a videohardwaru. V tomto textovém
                souboru pak uživatel nalezne kompletní sadu XML uzlů, tedy jednotlivých atributů
                ve stromu příslušného videohardwaru či kamery.



                    1) Spuštění aplikace Camera Explorer
                    - Po otevření aplikace si uživatel může zvolit kameru či dostupný
                       videohardware, který je kompatibilní s knihovnou SmartVision library.




Workswell s.r.o. | SmartVision SDK                                                               27
SmartVision SDK – uživatelský manuál




                    2) Vygenerování souboru s popisem a seznamem dostupných atributů pro
                       budoucí využití v DLL funkcích SmartVision library




                    3) Výsledný textový soubor s popisem a seznamem dostupných atributů pro
                       budoucí využití v DLL funkcích SmartVision library




SmartVision     Hlavní částí SmartVision SDK je instalovaná sada DLL funkcí SmartVision library pro
library - DLL   kompletní ovládání, čtení a přístup na data videohardwaru. Konkrétní cesta k těmto
knihovny        knihovnám je popsána v souboru README.RTF

                Popis jednotlivých funkcí je uveden v kapitole SmartVision library DLL funkce.




28                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál



11                SmartVision library DLL funkce
Obecný popis        Všechny DLL funkce kromě void funkcí vrací hodnotu Integer = 1, když jsou
DLL funkcí a     úspěšně dokončeny. Pokud však nastala chyba, vrácí hodnotu 0 nebo -1 (typicky u
záznam chyb v    funkcí get) dle typu chyby.
logu
                    Veškeré tyto chyby jsou zapsány do tzv. error logu, který je možné přečíst
                 z textového souboru error_log.txt, který je vytvořen ve stejné cestě kde je spuštěná
                 samotna DLL knihovna SmartVision library.


Spuštění            Pro ovládání kamery je nutné nejprve spustit tzv. session pomocí funkce
session a        OpenSession. Parametrem této funkce je název rozhraní kamery, který lze zjistit v
ukončení         poli camera Interface v pomocném programu Camera Explorer.
session
                    Otevření session chvíli trvá a proto je nutné před další prací s kamerou periodicky
                 provádět polling pomocí funkce GetSessionStatus. Session se nepodaří spustit,
                 pokud ke kameře již přistupuje jiný proces.
                    Je nutné ukončit session pomocí funkce CloseSession před ukončením aplikace,
                 ze které se volá DLL, jinak v paměti zůstane běžící proces příslušící spuštěné session.

                   Popis příslušných DLL funkcí:

                        void OpenSession(char cameraInterface[])
                             o Otevírá Session
                             o char cameraInterface[]nMode - string obsahující název rozhraní
                                kamery získaný pomocí aplikace Camera Explorer

                        void CloseSession()
                             o Ukončuje Session

                        int8_t GetSessionStatus()
                             o return:
                                     0 = Session není spuštěná
                                     1 = Session je spuštěná


Otevření a         Po spuštění session je možné otevřít okno s videem pomocí funkce OpenVideo.
zavření okna s   Dále už je možné libovolně volat ostatní funkce z knihovny SmartVision SDK. Po
videem           ukončení práce je nutné zavřít okno s videem funkcí CloseVideo a ukončit session
                 pomocí funkce CloseSession.

                   Popis příslušných DLL funkcí:

                        void OpenVideo()
                             o Otevírá okno s videem. Okno je potom nutné zapozicovat na
                                obrazovce pomocí funkcí ze systémové User32.dll knihovny



Workswell s.r.o. | SmartVision SDK                                                                   29
SmartVision SDK – uživatelský manuál


                       void CloseVideo()
                            o Zavírá okno s videem.


Ovládání         Veškeré hardwarové funkce příslušného videohardwaru je možné ovládat
parametrů     pomocí funkcí SetAttribute. Tyto funkce mají jako parametr název XML uzlu,
příslušného   který používá driver GigE rozhraní, případně dalších rozhraní (DirectShow a
videohardwaru podobně). V XML každé kamery jsou uvedeny všechny hardwarové atributy,
              které je na kameře možné ovládat. Seznam všech dostupných atributů je možné
              uložit do textového souboru programem Camera Explorer, který je součástí
              SmartVision library.

                   Uložený textový soubor obsahuje výpis všech atribut ve formátu:

                   [prvniXMLuzel::druhyXMLuzel::n-tyXMLuzel]
                   Description = "Popis XML atributy ulozeny v XML kamery"
                   Type = "Datovy typ" (UINT32, INT64, DBL, String, Enum, Bool, Command)
                   Read = TRUE/FALSE (je mozne atribut cist?)
                   Write = TRUE/FALSE (je mozne atribut zapisovat?)
                   Min = "Minimalni hodnota rozsahu atributu"
                   Max = "Maximalni hodnota rozsahu atributu"
                   Value0 = "Prvni hodnota enumeratoru"
                   Value1 = "Druha hodnota enumeratoru"
                   ValueN = "N-ta hodnota enumeratoru"

                   Popis příslušných DLL funkcí:

                       int8_t SetAttribute(char activeAttribute[], double valueDBL, char
                        valueString[])
                            o Funkce pro nastavování hardwarových atribut kamery
                            o char activeAttribute[] - název XML uzlu vyčtený ze souboru
                                vygenerovaného pomocí aplikace Camera Explorer (bez
                                složených závorek, ovšem včetně oddělovacích dvojteček)
                            o double valueDBL - číselná hodnota atributu. GiGE XML norma
                                specifikuje tyto datové typy UINT32, INT64, DBL, String, Enum,
                                Bool, Command. Parametr valueDBL zahrnuje datové typy
                                UINT32, INT64, DBL, Bool (0 = false, 1 = true) a Command (0 =
                                off, 1 = on). Je nutné si pohlídat platný rozsah atributu, uložený
                                opět v textovém souboru vygenerovaném aplikací Camera
                                Explorer.
                            o char ValueString[] - string hodnota atributu. Zahrnuje datové
                                typy String a Enum. Pro enumerátory jsou v textovém souboru
                                uloženy všechny platné hodnoty enumerátoru a tyto se předávají
                                funkci jako string.
                            o return:
                                      1 = nastavení úspěšné
                                      0 = nastavení úspěšné/chyba




30                                                  Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál




                       int8_t SetWindowSize(int16_t width, int16_t height)
                            o Nastavuje velikost okna s videem. Okno je vždy umístěno na
                                pozici (0,0)
                            o int16_t width - horizontální velikost okna v px
                            o int16_t height - vertikální velikost okna v px
                            o return:
                                     1 = nastavení úspěšné
                                     0 = nastavení úspěšné/chyba



Čtení            Obdobou ovládacích funkcí jsou funkce pro čtení parametrů z videohradwaru
parametrů     GetAttribute, které vyčtou z parametru videohardwaru aktuální hodnotu. Tyto
příslušného   funkce mají jako parametr název XML uzlu, který používá driver GigE rozhraní,
videohardwaru případně dalších rozhraní (DirectShow a podobně). V XML každé kamery jsou
              uvedeny všechny hardwarové atributy, které je na kameře možné ovládat.
              Seznam všech dostupných atributů je možné uložit do textového souboru
              programem Camera Explorer, který je součástí SmartVision library. Rozšířenou
              verzí funkce GetAttribute je funkce GetAttributeInfo, která z parametru vyčte
              doplňkové informace videohardwaru.


                   Popis příslušných DLL funkcí:


                       int8_t GetAttribute(char activeAttribute[], double *valueDBL, char
                        valueString[], Int32 lengthIn)
                            o Vyčte hodnotu hardwarového atributu kamery
                            o char activeAttribute[] - název XML uzlu vyčtený ze souboru
                                vygenerovaného pomocí aplikace Camera Explorer (bez
                                složených závorek, ovšem včetně oddělovacích dvojteček)
                            o double *valueDBL - pointer na proměnnou typu double, do které
                                se zapíše číselná hodnota atributu. Proměnná zastupuje datové
                                typy UINT32, INT64, DBL, Bool (0 = false, 1 = true) a Command (0
                                = off, 1 = on)
                            o char valueString[] - string hodnota atributu. Zahrnuje datové
                                typy String a Enum
                            o Int32 lengthIn - očekávaná délka obdrženého stringu (kvůli
                                vyhrazení paměti pro výstupní string char ValueString*+)
                            o return:
                                     1 = nastavení úspěšné
                                     0 = nastavení úspěšné/chyba




Workswell s.r.o. | SmartVision SDK                                                           31
SmartVision SDK – uživatelský manuál




                       int8_t GetAttributeInfo(char activeAttribute[], int8_t *type, int8_t
                        *readable, int8_t *writable, double *minimum, double *maximum,
                        double *valueDBL, char valueString[], int32_t len)
                            o Vyčte hodnotu hardwarového atributu kamery a další doplňkové
                                informace o atributu
                            o char activeAttribute[] - název XML uzlu vyčtený ze souboru
                                vygenerovaného pomocí aplikace Camera Explorer (bez
                                složených závorek, ovšem včetně oddělovacích dvojteček)
                            o int8_t *type - pointer na proměnnou, do které se zapíše datový
                                typ daného atributu (0 = UINT32, 1 = INT64, 2 = DBL, 3 = String, 4
                                = Enum, 5 = Bool, 6 = Command)
                            o int8_t *readable - je mozne atribut cist? (0 = false, 1 = true)
                            o int8_t *writable - je mozne atribut zapisovat? (0 = false, 1 = true)
                            o double *minimum - pointer na proměnnou, do které se zapíše
                                minimalni hodnota rozsahu atributu
                            o double *maximum - pointer na proměnnou, do které se zapíše
                                maximalni hodnota rozsahu atributu
                            o double *valueDBL - pointer na proměnnou typu double, do které
                                se zapíše číselná hodnota atributu. Proměnná zastupuje datové
                                typy UINT32, INT64, DBL, Bool (0 = false, 1 = true) a Command (0
                                = off, 1 = on)
                            o char valueString[] - string hodnota atributu. Zahrnuje datové
                                typy String a Enum
                            o Int32 lengthIn - očekávaná délka obdrženého stringu (kvůli
                                vyhrazení paměti pro výstupní string char ValueString*+)
                            o return:
                                     1 = nastavení úspěšné
                                     0 = nastavení úspěšné/chyba


                       void GetFPS(double *AcquiredFPS, double *ProcessedFPS)
                            o Zjistí počet snímků za vteřinu ve videu
                            o double *AcquiredFPS - počet snímků získaných z kamery před
                               processingem
                            o double *ProcessedFPS - počet snímků získaných z kamery po
                               processingu


                       void GetVideoResolution(int16_t *ResolutionX, int16_t *ResolutionY)
                            o zjistí aktuální rozlišení videa
                            o int16_t *ResolutionX - pointer na proměnnou typu int16, do se
                               zapíše horizontální rozlišení videa
                            o int16_t *ResolutionY - pointer na proměnnou typu int16, do se
                               zapíše vertikální rozlišení videa



32                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál


Uložení              V některých případech je nutné přenastavit defaultní parametry
parametrů a       videohardwaru pro koncovou aplikaci (typicky rozlišení kamery). V případě
automatické       využití funkcí set se příslušné parametry aplikují přímo na aktuální
načtení           videohardware, ale již neuloží do vnitřní paměti samotného videohardwaru.
v novém           Proto v případě odpojení a opětovného zapojení dojde k načtení defaultních
Session           hodnot a tedy k přepisu již nastavených parametrů. Pro tyto případy, kdy je
                  potřeba zajistit trvalé nastavení parametrů při opětovném připojení
                  videohardwaru, je k dispozici speciální funkce, která uloží aktuálně nastavené
                  parametry do paměti počítače. Ty jsou následně načteny při opětovném
                  připojení videohardwaru:

                        int8_t SaveCamSettings(void)
                             o Uloží aktuální nastavení všech atributů kamery. Při zavření a
                                 novém spuštění session jsou tato nastavení obnovena.
                             o return:
                                     1 = nastavení úspěšné
                                     0 = nastavení úspěšné/chyba


Uložení a            Základním a nejjednodušším způsobem zachycení aktuálního obrazu
načtení           z videohardwaru je načtení aktuálního obrazu z videookna do pracovní paměti
aktuálního        počítače. K tomuto účelu slouží funkce MakeSnap.
snímku
z paměti                void MakeSnap(uint8_t buffer[], int32_t length)
počítače                     o požadavek na vytvoření snímku aktuálního videa do bufferu
                               (pole). Při volání je nutné parametrem length zadat požadovanou
                               délku čteného bufferu.
                             o int32_t length - délka čteného bufferu (vypočítá se jako
                               horizontální × vertikální rozlišení × 3 (~3 barvy), rozlišení lze
                               rychle získat funkcí GetVideoResolution)
                             o uint8_t buffer - pointer na jednorozměrné pole datového typu
                               byte délky length, ve kterém jsou uložena poslední snímková
                               data. Data jsou v poli uložena po jednotlivých pixelech zleva do
                               prava a dále po jednotlivých řádcích snímku. Každé po sobě
                               jdoucí tři prvky pole odpovídají barevným složkám každého
                               pixelu (R,G,B). Tedy např. pro matici pixelů *1,2;3,4+ bude pole
                               vypadat: {R1,G1,B1,R2,G2,B2,R3,G3,B3,R4,G4,B4}.


Nastavení           Knihovna SmartVision obsahuje sadu softwarových filtračních algoritmů
softwarové        pomocí, kterých je možno softwarově přepočítat obrazovou informaci. Díky
filtrace obrazu   tomu je umožněno přepočítat jasové složky, kontrast, ostrost či provádět
                  barevné transformace.

                        void SetSwBrightness(int8_t nVal)
                             o nastavení hodnoty jasu na požadovanou úroveň, rozsah -100 až
                                100
                             o nVal - hodnota jasu
                                     rozsah -100 až 100

Workswell s.r.o. | SmartVision SDK                                                                 33
SmartVision SDK – uživatelský manuál



                       int8_t GetSwBrightness(void)
                            o získání aktuální hodnoty jasu
                            o return - hodnota jasu
                                    rozsah -100 až 100, výchozí hodnota 0

                       void SetSwContrast(double fVal)
                            o nastavení hodnoty kontrastu na požadovanou úroveň, rozsah
                               0.000 až 2.000
                            o nVal - hodnota kontrastu
                                    rozsah 0.000 až 2.000

                       double GetSwContrast(void)
                           o získání aktuální hodnoty kontrastu
                           o return - hodnota jasu
                                   rozsah 0.000 až 2.000, výchozí hodnota 1.000

                       void SetSwSharpness(int8_t nSharp)
                            o nastavení USM (unsharp mask) doostrostření obrazu na
                               požadovanou úroveň, rozsah 0 až 100
                            o nSharp - hodnota doostrostření
                                   rozsah 0 až 100, výchozí hodnota 0 = doostřování
                                      vypnuto

                       int8_t GetSwSharpness(void)
                            o získání aktuální hodnoty doostrostření obrazu
                            o return - hodnota doostrostření obrazu
                                    rozsah 0 až 100, výchozí hodnota 0 = doostřování
                                      vypnuto

                       void SetSwColorTransformationValueRGB(double fR, double fG, double
                        fB)
                            o nastavení hodnoty násobičů barevných složek obrazu na
                               požadovanou úroveň, rozsah každé složky 0.000 až 2.000
                            o fR - hodnota násobiče červené složky
                                    rozsah 0.000 až 2.000
                            o fG - hodnota násobiče zelené složky
                                    rozsah 0.000 až 2.000
                            o fB - hodnota násobiče modré složky
                                    rozsah 0.000 až 2.000




34                                              Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál


                       void GetSwColorTransformationValueRGB(double *fR, double *fG,
                        double *fB)
                            o získání hodnot násobičů barevných složek obrazu. Parametry
                               funkce jsou pointery na proměnné typu double, do kterých
                               budou uloženy hodnoty násobičů barevných složek
                            o double *fR - pointer na proměnnou, do které se zapíše hodnota
                               násobiče červené složky, výchozí hodnota 1.000
                            o double *fG - pointer na proměnnou, do které se zapíše hodnota
                               násobiče zelené složky, výchozí hodnota 1.000
                            o double *fB - pointer na proměnnou, do které se zapíše hodnota
                               násobiče modré složky, výchozí hodnota 1.000


                       void SetSwPolynomTransformation(double fConstX3, double fConstX2,
                        double fConstX1, double fConstX0)
                            o nastavení hodnot parametrů pro transformaci intenzit pixelů
                               obrazu. Parametry zastupují jednotlivé koeficienty polynomu 3.
                               řádu.
                            o double fConstX3 - hodnota koeficientu třetího řádu
                                   rozsah - plný rozsah proměnné typu double precision
                                      float
                            o double fConstX2 - hodnota koeficientu druhého řádu
                                   rozsah - plný rozsah proměnné typu double precision
                                      float
                            o double fConstX1 - hodnota koeficientu prvního řádu
                                   rozsah - plný rozsah proměnné typu double precision
                                      float
                            o double fConstX0 - hodnota koeficientu nultého řádu
                                   rozsah - plný rozsah proměnné typu double precision
                                      float




Workswell s.r.o. | SmartVision SDK                                                        35
SmartVision SDK – uživatelský manuál


                       void GetSwPolynomTransformation(double *fConstX3, double
                        *fConstX2, double *fConstX1, double *fConstX0)
                            o získání hodnot parametrů pro transformaci intenzit pixelů
                               obrazu. Parametry zastupují jednotlivé koeficienty polynomu 3.
                               řádu. Parametry funkce jsou pointery na proměnné typu double,
                               do kterých budou uloženy hodnoty koeficientů.
                            o double *fConstX3 - pointer na proměnnou, do které se zapíše
                               hodnota koeficientu třetího řádu
                                    rozsah - plný rozsah proměnné typu double precision
                                      float
                                    výchozí hodnota = 0
                            o double *fConstX2 - pointer na proměnnou, do které se zapíše
                               hodnota koeficientu druhého řádu
                                    rozsah - plný rozsah proměnné typu double precision
                                      float
                                    výchozí hodnota = 0
                            o double *fConstX1 - pointer na proměnnou, do které se zapíše
                               hodnota koeficientu prvního řádu
                                    rozsah - plný rozsah proměnné typu double precision
                                      float
                                    výchozí hodnota = 1
                            o double *fConstX0 - pointer na proměnnou, do které se zapíše
                               hodnota koeficientu nultého řádu
                                    rozsah - plný rozsah proměnné typu double precision
                                      float
                                    výchozí hodnota = 0




Ovládání          Některé aplikace pro zpracování obrazu jsou značně zatíženy nestabilitou
digitální       obrazové scény. Například jako jsou vibrace automobilu či rotace ramena, na
stabilizace     kterém je kamerový systém připevněn. K odstranění a zlepšení stability
obrazu          obrazové scény lze použít speciální algoritmus digitální stabilizace. Ten pomocí
                korelačních funkcí a sledování pohybu obrazové scény dokáže výrazně zlepšit
                výsledný obraz.


                       void StabON()
                            o zapnutí stabilizace

                       void StabOFF()
                            o vypnutí stabilizace




36                                               Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál



                       void StabSetup(uint16_t xResolution, uint16_t sensitivity, uint8_t
                        angle, uint8_t corrRotation, uint8_t interpolate)
                            o nastavení pokročilých parametrů stabilizace
                            o uint16_t xResolution - rozlišení použité pro subsampling obrazu,
                                který je použit pro stabilizaci. Nižší xResolution znamená
                                zrychlení algoritmu stabilizace a snížení výpočetní náročnosti za
                                cenu ztráty detailů použitých k rozlišení oblasti pro stabilizaci.
                                Zadává se pouze horizontální rozlišení, vertikální je dopočítáno
                                tak, aby byl dodžen poměr stran vstupního obrazu. Při změně
                                rozlišení je automaticky stabilizace vypnuta a je nutné ji znovu
                                zapnout fcí StabON().
                                     rozsah = 0 - 65536, výchozí hodnota = 1024
                            o uint16_t sensitivity - citlivost vyhledávání oblasti pro stabilizaci v
                                obrazu. Vyšší citlivost znamená více tolerantní algoritmus
                                stabilizace, ovšem za cenu možnosti zachytit falešnou oblast
                                používanou pro stabilizaci. Nižší citlivost je přísnější ve
                                vyhledávání oblasti v obraze.
                                     rozsah = 0 - 100, výchozí hodnota = 20
                            o uint8_t angle - nastavení možnosti rotace oblasti používané pro
                                stabilizaci. Zásadně ovlivňuje výpočetní náročnost stabilizace.
                                     rozsah = 0 - 180, výchozí hodnota = 4
                            o uint8_t corrRotation - zapnutí/vypnutí stabilizace rotace kamery.
                                Má zásadní vliv na výpočetní náročnost stabilizace.
                                     1 = zapnuto, 0 = vypnuto, výchozí hodnota = 0
                            o uint8_t interpolate - zapnutí/vypnutí interpolace výstupního
                                obrazu při zapnuté stabilizaci rotace kamery. Opět má velký vliv
                                na výpočetní náročnost stabilizace.
                                     1 = zapnuto, 0 = vypnuto, výchozí hodnota = 0

                       void StabShowOrigVideo(uint8_t showOrigVideo)
                            o demonstrační funkce, která otevře přídavné okno s
                                nestabilizovaným obrazem (pro porovnání stabilizovaného a
                                nestabilizovaného videa)
                            o uint8_t showOrigVideo - otevře/zavře okno s nestabilizovaným
                                obrazem
                                    1 = zapnuto, 0 = vypnuto, výchozí hodnota = 0




Workswell s.r.o. | SmartVision SDK                                                               37
SmartVision SDK – uživatelský manuál


Získání            Pro přístup k aktuálním nezměněným obrazovým datům z kamery lze použít
pointeru na     funkci GetRawImagePointer. Tato funkce vrátí pointer na blok paměti, kde je
blok paměti     uložen aktuální nezpracovaný snímek z kamery.
s aktuálním
nezpracovaným     Jednorozměrné pole bytů v paměti obsahuje čistá obrazová data snímku.
snímkem z       Formát dat odpovídá datovému typu obrazu. Pro rekonstrukci obrazu je nutné
kamery          znát další návratové parametry funkce GetRawImagePointer.

                   První řádek snímku zrekonstruujeme takto: začneme u PixelPointerOut a
                pokračujeme po blocích odpovídajících velikosti PixelSize až do XResolution
                (poslední pixel prvního řádku. První pixel druhého řádku získáme takto:
                PixelPointerOut + LineWidth a opět můžeme postupovat po blocích velikosti
                PixelSize. Takto postupujeme po řádcích až do YResolution (vertikální rozlišní =
                index posledního řádku).

                   Černobílý snímek datového typu Mono8 má 8-bitovou hodnotu každého
                pixelu uloženou v jednom bytu. Každý byte pole z paměti tedy odpovídá
                jednomu pixelu.

                  Radiometrický snímek datového typu Mono16 má 16-bitovou hodnotu
                každého pixelu uloženou ve dvou bytech. Hodnota pixelu potom odpovídá
                dvěma po sobě jdoucím bytům pole z paměti.

                   Barevný snímek typu RGB32 má 32-bitovou hodnotu každého pixelu uloženou
                ve čtyřech bytech. Hodnota pixelu potom odpovídá čtyřem po sobě jdoucím
                bytům pole z paměti, přičemž první, druhý a třetí odpovídají červené, zelené a
                modré složce pixelu a čtvrtý byte je nulový.

                       int8_t GetRawImagePointer(uint64_t *PixelPointerOut, int32_t
                        *BufferSize, int32_t *PixelSize, int32_t *LineWidth, int32_t
                        *XResolution, int32_t *YResolution)
                            o uint64_t PixelPointerOut - pointer na první pixel snímku v paměti
                               (ve snímku vlevo nahoře)
                            o int32_t PixelSize - počet bytů obsahujících hodnotu jednoho
                               pixelu
                            o int32_t BufferSize - celkový počet bytů snímku v paměti
                            o int32_t LineWidth - délka jednoho řádku snímku v paměti
                               (včetně pomocných obrazových pixelů)
                            o int32_t XResolution - skutečné horizontální rozlišení snímku
                            o int32_t YResolution - skutečné vertikální rozlišení snímku




38                                                Univerzální DLL videoknihovna| Workswell s.r.o.
SmartVision SDK – uživatelský manuál


Získání            Pro přístup k aktuálním zpracovaným obrazovým datům z kamery lze použít
pointeru na     funkci GetOutImagePointer. Tato funkce vrátí pointer na blok paměti, kde je
blok paměti     uložen aktuální zpracovaný snímek z kamery (tedy snímek po průchodu
s aktuálním     softwarovými filtry, stabilizací, apod.).
zpracovaným        Funkce funguje totožně jako funkce GetRawImagePointer, bližší popis je tedy
snímkem z       stejný (viz výše).
kamery
                       int8_t GetOutImagePointer(uint64_t *PixelPointerOut, int32_t
                        *BufferSize, int32_t *PixelSize, int32_t *LineWidth, int32_t
                        *XResolution, int32_t *YResolution)
                            o uint64_t PixelPointerOut - pointer na první pixel snímku v paměti
                               (ve snímku vlevo nahoře)
                            o int32_t PixelSize - počet bytů obsahujících hodnotu jednoho
                               pixelu
                            o int32_t BufferSize - celkový počet bytů snímku v paměti
                            o int32_t LineWidth - délka jednoho řádku snímku v paměti
                               (včetně pomocných obrazových pixelů)
                            o int32_t XResolution - skutečné horizontální rozlišení snímku
                            o int32_t YResolution - skutečné vertikální rozlišení snímku




Workswell s.r.o. | SmartVision SDK                                                          39
SmartVision SDK – uživatelský manuál



12               Tutoriál pro vývoj v jazyce C#
Testovací       Součástí balíku SmartVision SDK je také demonstrační aplikace v jazyce C#, která
aplikace        ukazuje jednoznačné využití všech DLL funkcí a vyčtení videodat. Principiálně je
                přístup, ovládání a čtení velmi podobné ať už se jedná o jazyk C, C++ či jiné
                standardní textové jazyky podporující import a přístup na DLL knihovny.

Readme.txt      V textovém souboru readme naleznete instrukce, kde nakopírovat příslušné DLL
                knihovny a jak s nimi manipulovat. V případě dotazů prosím postupujte dle instrukcí
                z kapitoly Nápověda a dotazy.




40                                                Univerzální DLL videoknihovna| Workswell s.r.o.

More Related Content

Viewers also liked

Mo Z Zapp
Mo Z ZappMo Z Zapp
Mo Z Zappjakesb
 
Kontrola elektroinstalací termokamerou
Kontrola elektroinstalací termokamerouKontrola elektroinstalací termokamerou
Kontrola elektroinstalací termokamerouWorkswell s.r.o.
 
Praktické rady ke kontrole elektroinstalací termokamerou
Praktické rady ke kontrole elektroinstalací termokamerouPraktické rady ke kontrole elektroinstalací termokamerou
Praktické rady ke kontrole elektroinstalací termokamerouWorkswell s.r.o.
 
Zaklady prace s termokamerou
Zaklady prace s termokamerouZaklady prace s termokamerou
Zaklady prace s termokamerouWorkswell s.r.o.
 
Termografická diagnostika budov
Termografická diagnostika budovTermografická diagnostika budov
Termografická diagnostika budovWorkswell s.r.o.
 
Life Satisfaction - The Plan
Life Satisfaction - The PlanLife Satisfaction - The Plan
Life Satisfaction - The Plansmakam
 
Satisfaction
SatisfactionSatisfaction
Satisfactionsmakam
 
Life Satisfaction - Progress
Life Satisfaction - ProgressLife Satisfaction - Progress
Life Satisfaction - Progresssmakam
 

Viewers also liked (9)

Google
GoogleGoogle
Google
 
Mo Z Zapp
Mo Z ZappMo Z Zapp
Mo Z Zapp
 
Kontrola elektroinstalací termokamerou
Kontrola elektroinstalací termokamerouKontrola elektroinstalací termokamerou
Kontrola elektroinstalací termokamerou
 
Praktické rady ke kontrole elektroinstalací termokamerou
Praktické rady ke kontrole elektroinstalací termokamerouPraktické rady ke kontrole elektroinstalací termokamerou
Praktické rady ke kontrole elektroinstalací termokamerou
 
Zaklady prace s termokamerou
Zaklady prace s termokamerouZaklady prace s termokamerou
Zaklady prace s termokamerou
 
Termografická diagnostika budov
Termografická diagnostika budovTermografická diagnostika budov
Termografická diagnostika budov
 
Life Satisfaction - The Plan
Life Satisfaction - The PlanLife Satisfaction - The Plan
Life Satisfaction - The Plan
 
Satisfaction
SatisfactionSatisfaction
Satisfaction
 
Life Satisfaction - Progress
Life Satisfaction - ProgressLife Satisfaction - Progress
Life Satisfaction - Progress
 

Similar to Manual Smart Vision SDK - dll video library

Přechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítíchPřechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítíchMarketingArrowECS_CZ
 
End User Computing od VMware v kostce
End User Computing od VMware v kostceEnd User Computing od VMware v kostce
End User Computing od VMware v kostceMarketingArrowECS_CZ
 
Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013Tomáš Kypta
 
View5 technicka 2011
View5 technicka 2011View5 technicka 2011
View5 technicka 2011Vladan Laxa
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_ware4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_warepisaceku
 
Jak na BYOD chytře?
Jak na BYOD chytře?Jak na BYOD chytře?
Jak na BYOD chytře?www.embt.cz
 
Základy licencování 1 (čtvrtek, 25.5.2023)
Základy licencování 1 (čtvrtek, 25.5.2023)Základy licencování 1 (čtvrtek, 25.5.2023)
Základy licencování 1 (čtvrtek, 25.5.2023)Michal ZOBEC
 
Newtek - IP Series - IP video produkční systém
Newtek - IP Series - IP video produkční systémNewtek - IP Series - IP video produkční systém
Newtek - IP Series - IP video produkční systémPetr Krkavec
 
Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?
Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?
Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?Jaroslav Prodelal
 
1-1zakladnipojmyit&rozdelenisw-dlelicenci
1-1zakladnipojmyit&rozdelenisw-dlelicenci1-1zakladnipojmyit&rozdelenisw-dlelicenci
1-1zakladnipojmyit&rozdelenisw-dlelicencipremysl
 
Liferay DXP webinar 2021 03-16
Liferay DXP webinar 2021 03-16Liferay DXP webinar 2021 03-16
Liferay DXP webinar 2021 03-16Jakub Hamerník
 
Deployment OS Windows
Deployment OS WindowsDeployment OS Windows
Deployment OS WindowsMichal ZOBEC
 
Stream Circle - Cloud based NDI playout a CG
Stream Circle - Cloud based NDI playout a CGStream Circle - Cloud based NDI playout a CG
Stream Circle - Cloud based NDI playout a CGPetr Krkavec
 
Aktivace technologie Intel vPro v2
Aktivace technologie Intel vPro v2Aktivace technologie Intel vPro v2
Aktivace technologie Intel vPro v2Frantisek Fait
 

Similar to Manual Smart Vision SDK - dll video library (20)

Přechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítíchPřechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítích
 
Studio cz
Studio czStudio cz
Studio cz
 
End User Computing od VMware v kostce
End User Computing od VMware v kostceEnd User Computing od VMware v kostce
End User Computing od VMware v kostce
 
OS & App Security
OS & App SecurityOS & App Security
OS & App Security
 
Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013
 
Clanek intelvpro
Clanek intelvproClanek intelvpro
Clanek intelvpro
 
View5 technicka 2011
View5 technicka 2011View5 technicka 2011
View5 technicka 2011
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_ware4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_ware
 
Jak na BYOD chytře?
Jak na BYOD chytře?Jak na BYOD chytře?
Jak na BYOD chytře?
 
Policy Compliance Testing (2011)
Policy Compliance Testing (2011)Policy Compliance Testing (2011)
Policy Compliance Testing (2011)
 
Základy licencování 1 (čtvrtek, 25.5.2023)
Základy licencování 1 (čtvrtek, 25.5.2023)Základy licencování 1 (čtvrtek, 25.5.2023)
Základy licencování 1 (čtvrtek, 25.5.2023)
 
openMagazin 9/2012
openMagazin 9/2012openMagazin 9/2012
openMagazin 9/2012
 
Newtek - IP Series - IP video produkční systém
Newtek - IP Series - IP video produkční systémNewtek - IP Series - IP video produkční systém
Newtek - IP Series - IP video produkční systém
 
Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?
Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?
Od virtualizace serverů k virtualizaci desktopů. Nebo opačně?
 
1-1zakladnipojmyit&rozdelenisw-dlelicenci
1-1zakladnipojmyit&rozdelenisw-dlelicenci1-1zakladnipojmyit&rozdelenisw-dlelicenci
1-1zakladnipojmyit&rozdelenisw-dlelicenci
 
Liferay DXP webinar 2021 03-16
Liferay DXP webinar 2021 03-16Liferay DXP webinar 2021 03-16
Liferay DXP webinar 2021 03-16
 
Deployment OS Windows
Deployment OS WindowsDeployment OS Windows
Deployment OS Windows
 
Stream Circle - Cloud based NDI playout a CG
Stream Circle - Cloud based NDI playout a CGStream Circle - Cloud based NDI playout a CG
Stream Circle - Cloud based NDI playout a CG
 
Aktivace technologie Intel vPro v2
Aktivace technologie Intel vPro v2Aktivace technologie Intel vPro v2
Aktivace technologie Intel vPro v2
 

More from Workswell s.r.o.

VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014
VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014
VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014Workswell s.r.o.
 
ThermoInspector - Konference DIAGO 2014
ThermoInspector - Konference DIAGO 2014ThermoInspector - Konference DIAGO 2014
ThermoInspector - Konference DIAGO 2014Workswell s.r.o.
 
Prezentace na konferenci B&R 2014 v Brně
Prezentace na konferenci B&R 2014 v BrněPrezentace na konferenci B&R 2014 v Brně
Prezentace na konferenci B&R 2014 v BrněWorkswell s.r.o.
 
Iport ntx mini-embedded_video_interface_data_sheet
Iport ntx mini-embedded_video_interface_data_sheetIport ntx mini-embedded_video_interface_data_sheet
Iport ntx mini-embedded_video_interface_data_sheetWorkswell s.r.o.
 
Iport ntx ten-embedded_videointerface_data_sheet
Iport ntx ten-embedded_videointerface_data_sheetIport ntx ten-embedded_videointerface_data_sheet
Iport ntx ten-embedded_videointerface_data_sheetWorkswell s.r.o.
 
Iport ntx pro-embedded_video_interface_data_sheet
Iport ntx pro-embedded_video_interface_data_sheetIport ntx pro-embedded_video_interface_data_sheet
Iport ntx pro-embedded_video_interface_data_sheetWorkswell s.r.o.
 
Iport ntx gige-embedded_video_interface_data_sheet
Iport ntx gige-embedded_video_interface_data_sheetIport ntx gige-embedded_video_interface_data_sheet
Iport ntx gige-embedded_video_interface_data_sheetWorkswell s.r.o.
 
Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...
Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...
Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...Workswell s.r.o.
 
ThermoSafety - software pro termovizní monitoring
ThermoSafety - software pro termovizní monitoringThermoSafety - software pro termovizní monitoring
ThermoSafety - software pro termovizní monitoringWorkswell s.r.o.
 
Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...
Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...
Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...Workswell s.r.o.
 
Pozvánka na školení do Centra termografie
Pozvánka na školení do Centra termografiePozvánka na školení do Centra termografie
Pozvánka na školení do Centra termografieWorkswell s.r.o.
 
Chyby a omyly - aneb motivační část (v. 1.0)
Chyby a omyly - aneb motivační část (v. 1.0)Chyby a omyly - aneb motivační část (v. 1.0)
Chyby a omyly - aneb motivační část (v. 1.0)Workswell s.r.o.
 

More from Workswell s.r.o. (12)

VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014
VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014
VYHLÁŠENÍ SOUTĚŽE V LABVIEW PRO ČVUT - 2014
 
ThermoInspector - Konference DIAGO 2014
ThermoInspector - Konference DIAGO 2014ThermoInspector - Konference DIAGO 2014
ThermoInspector - Konference DIAGO 2014
 
Prezentace na konferenci B&R 2014 v Brně
Prezentace na konferenci B&R 2014 v BrněPrezentace na konferenci B&R 2014 v Brně
Prezentace na konferenci B&R 2014 v Brně
 
Iport ntx mini-embedded_video_interface_data_sheet
Iport ntx mini-embedded_video_interface_data_sheetIport ntx mini-embedded_video_interface_data_sheet
Iport ntx mini-embedded_video_interface_data_sheet
 
Iport ntx ten-embedded_videointerface_data_sheet
Iport ntx ten-embedded_videointerface_data_sheetIport ntx ten-embedded_videointerface_data_sheet
Iport ntx ten-embedded_videointerface_data_sheet
 
Iport ntx pro-embedded_video_interface_data_sheet
Iport ntx pro-embedded_video_interface_data_sheetIport ntx pro-embedded_video_interface_data_sheet
Iport ntx pro-embedded_video_interface_data_sheet
 
Iport ntx gige-embedded_video_interface_data_sheet
Iport ntx gige-embedded_video_interface_data_sheetIport ntx gige-embedded_video_interface_data_sheet
Iport ntx gige-embedded_video_interface_data_sheet
 
Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...
Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...
Bezkontaktní měření teploty přístroji a termokamerami TESTO - praktické aplik...
 
ThermoSafety - software pro termovizní monitoring
ThermoSafety - software pro termovizní monitoringThermoSafety - software pro termovizní monitoring
ThermoSafety - software pro termovizní monitoring
 
Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...
Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...
Brožura ThermoMedic - software pro detekci a měření teploty lidské kůže a obl...
 
Pozvánka na školení do Centra termografie
Pozvánka na školení do Centra termografiePozvánka na školení do Centra termografie
Pozvánka na školení do Centra termografie
 
Chyby a omyly - aneb motivační část (v. 1.0)
Chyby a omyly - aneb motivační část (v. 1.0)Chyby a omyly - aneb motivační část (v. 1.0)
Chyby a omyly - aneb motivační část (v. 1.0)
 

Manual Smart Vision SDK - dll video library

  • 1. SmartVision SDK – uživatelský manuál Uživatelský manuál Revize manuálu: 1.8 Kompatibilita s verzí SmartVision: 1.0.28 Datum uvolnění revize: 23.4. 2013 Workswell s.r.o. | SmartVision SDK 1
  • 2. SmartVision SDK – uživatelský manuál Úvod SmartVision SDK je sada vývojových nástrojů pro implementaci videoaplikací. Obsahuje širokou sadu ovladačů (SmartVision Runtime Package), dll videoknihovnu (SmartVision library) a testovací aplikace (TestApp). Knihovna SmartVision library je univerzální DLL knihovna pro získání videoobrazu, implementaci a návrh obrazových algoritmů. Knihovna podporuje připojení na protokoly GigE, USB 2.0, USB 3.0, CameraLink, Fast Ethernet MJPEG, IEEE 1394 Firewire od více jak 47 výrobců kamer a videohardwaru. Využitím formátu DLL je možné tuto knihovnu využít v programovacím jazyce C, C++, C#, Visual Basic, Matlab, Labview a všech prostředích podporujících import DLL funkcí. Díky snadnému rozhraní je možné přistupovat k příslušnému kamerovému systému vždy stejným principem a získat kompletní kontrolu nad používaným videohardwarem. Vývojář tak může použít jednu knihovnu pro návrh aplikací s odlišnými videorozhraními od protokolu GigE až po USB. SmartVision library obsahuje také pomocné aplikace pro efektivní průzkum připojeného videohardwaru. Aplikace CameraExplorer dovoluje uživateli zobrazit připojený videohardware a vypsat všechny čtecí a zápisové parametry videosystému. Pomocí sady GET a SET funkcí je možné plně ovládat a nastavovat videohardware. Otevření a ukončení videostreamu je díky funkci OpenSession a CloseSession velmi jednoduché a rychlé. Zobrazení aktuálního obrazu je umožněno jak pomocí již předpřipraveného videookna, tak i pomocí čtení z matice RGB dat z příslušného bufferu pomocí. Obraz lze zaznamenat také jednoduše pomocí vyfocení aktuální scény (funkce MakeSnap) či přímo pomocí reference přistupovat na blok dat ve videopaměti a tím dosáhnout maximální obnovovací frekvence obrazové informace z kamerového systému. Oranžové bloky níže ukazují části vývojové sady SmartVision SDK. Testovací aplikace TestApp SmartVision Vývojové prostředí IDE pro vývoj koncové SmartVision library (sada DLL funkcí pro aplikace (C#, C/C++, Matlab, Labview, atd.) ovládání a zpracování obrazu z videohardwaru) Operační systém Windows (XP, Vista, 7 - 32bit a 64bit) SmartVision Runtime Package (sada ovladačů a přímý přístup na videohardware) Videohardware a kamery (Ethenet, USB, CameraLink, PCI) 2 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 3. SmartVision SDK – uživatelský manuál SmartVision SDK - uživatelský manuál Workswell s.r.o. | SmartVision SDK 3
  • 4. SmartVision SDK – uživatelský manuál Vyvázání se že záruky Všechny výrobky (software, hardware či firmware) společnosti Workswell s.r.o. mají záruku proti výrobním vadám po dobu dvou let. Tuto záruku lze uplatnit pouze, pokud byl výrobek skladován a používán podle pokynů uvedených v příslušné příručce. Záruka se vztahuje pouze na původního kupce a je nepřenositelná. Záruku nelze uplatnit na výrobek, který byl nesprávně používán, neudržován, poškozen nebo provozován při podmínkách, které manuál nestanovuje jako podmínku provozní. Jestliže dojde k poškození výrobku, který je kryt zárukou, výrobek nesmí být dále používán, aby se zabránilo dalšímu poškození. Zákazník musí neprodleně oznámit tuto závadu společnosti Workswell nebo jím autorizovanému distributorovi, jinak nebude možné záruku uplatnit. Společnost Workswell zdarma opraví nebo vymění každý vadný výrobek, jestliže bude na základě odborné prohlídky prokázána u výrobku vada materiálu či výrobku a jestliže bude tento výrobek vrácen společnosti Workswell v záruční době, tj. do dvou let od data nákupu. Výrobek nesmí být společnost Workswell otevírán nebo upravován. Společnost Workswell nenese odpovědnost za vady výrobku kromě výše uvedených a neposkytuje na ně záruku. Žádná další záruka není vyjádřena ani předpokládána. Společnost Workswell nenese odpovědnost za neodborné použití výrobku ani za škody způsobené nesprávnou činností, instalací či funkcí výrobku třetím stranám či samotnému uživateli. Autorská práva © Workswell s.r.o. Všechna práva celosvětově vyhrazena. Bez předchozího písemného souhlasu společnosti Workswell s.r.o. nesmí být žádná část software či hardware včetně zdrojového kódu a zdrojových souborů reprodukována, přenášena, přepisována nebo překládána do jakéhokoli umělého či přirozeného jazyka, pokud není výsledně uvedeno jinak. Názvy a značky uvedené na výrobcích v této příručce jsou registrovanými ochrannými známkami nebo ochrannými známkami společnosti Workswell s.r.o. Všechny ostatní ochranné známky nebo názvy společností zmíněné v této příručce a manuálu se používají pouze pro identifikaci a jsou majetkem jejich příslušných vlastníků. 4 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 5. SmartVision SDK – uživatelský manuál Workswell s.r.o. | SmartVision SDK 5
  • 6. SmartVision SDK – uživatelský manuál Obsah Úvod ........................................................................................................................................................ 1 Obsah....................................................................................................................................................... 6 Varování a upozornění ............................................................................................................................ 7 Obsah standardního dodání .................................................................................................................... 8 Informace pro uživatele .......................................................................................................................... 9 Nápověda a dotazy ................................................................................................................................ 10 Požadavky na hardware PC ................................................................................................................... 11 Aktualizace a kompatibilita ................................................................................................................... 12 Licenční systém SmartVision ................................................................................................................. 15 Instalace SmartVision SDK ..................................................................................................................... 20 Spouštění TRIAL verze ........................................................................................................................... 26 Popis balíku SmartVision SDK ................................................................................................................ 27 SmartVision library DLL funkce.............................................................................................................. 29 Tutoriál pro vývoj v jazyce C# ................................................................................................................ 40 6 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 7. SmartVision SDK – uživatelský manuál 1 Varování a upozornění Varování Před použitím výrobku zkontrolujte, zda nejeví viditelné známky poškození či nesprávné funkce. Pokud je zařízení poškozené či jinak vadné, nepoužívejte jej. Upozornění Nepoužívejte a neskladujte zařízení v rozporu se skladovacími a provozními podmínkami stanovenými v této příručce (týká se jen hardware). Jakékoliv zásahy a necertifikované servisní úkony do výrobku vedou k automatické ztrátě záruky Workswell s.r.o. | SmartVision SDK 7
  • 8. SmartVision SDK – uživatelský manuál 2 Obsah standardního dodání CD Součástí standardního zakoupeného CD SmartVision SDK jsou tyto části:  Sada ovladačů SmartVision Runtime Package  DLL knihovna SmartVision library  Testovací aplikace a tutorial TestApp  Příručka SmartVision SDK - Uživatelský manuál. SmartVision Součástí standardního dodání je samoinstalační aplikace SmartVision Runtime Runtime Package, která obsahuje ovladače na kompatibilní videohardware. Tato aplikace Package nainstaluje na příslušný počítač sadu driverů pro videohardware a kamery. Některé z těchto ovladačů využívají také sadu MAX od společnosti National Instruments a dalších společností. Společnost Workswell s.r.o. plně uznává veškeré licenční ujednání se společností National Instruments a veškeré poplatky za užívání tohoto modulu ve svém vývojovém nástroji SmartVision SDK. Dokumentace S výrobkem SmartVision SDK je dodáván Uživatelský manuál (tj. dokument, který právě čtete), který je uložen na oficiálním CD. 8 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 9. SmartVision SDK – uživatelský manuál 3 Informace pro uživatele Typografické V této příručce se používají následující typografické konvence: konvence  VELKÁ PÍSMENA se používají pro názvy kláves, tlačítek a položek menu,  COURIER se používá pro ukázky zdrojových kódů, názvy souborů a souborové cesty,  kurzíva se používá pro důležité informace a názvy dokumentů,  tučné písmo je použito při odkazu na jinou kapitolu, názvy funkcí či internetové odkazy Nápověda a S technickými dotazy, na které vám nepomohla najít odpověď tato příručka, se uživatelské obraťte na svého prodejce, nebo přímo na stránky produktu na internetové fórum adrese http://www.workswell.cz, kde nejprve vyhledejte odpověď v uživatelském fóru a pokud odpověď na svůj dotaz nenaleznete, zašlete dotaz na email info@workswell.cz Aktualizace Prioritním cílem společnosti Workswell je dodávat své výrobky v takové podobě, aby splňovala aktuální potřeby svých uživatelů a zároveň, aby byly co nejrychleji odstraněny všechny nedostatky, které byly při jejich užívání nalezeny. Z tohoto důvodu společnost Workswell ve všech svých výrobcích pravidelně uvolňuje aktualizace. Více informací naleznete v kapitole Aktualizace a kompatibilita. Firmware Firmware je „interní“ řídicí program zařízení. Z uživatelského pohledu je podstatná pouze aktuální verze firmware, která je nahrána v právě používaném zařízení a videohardwaru. Workswell s.r.o. | SmartVision SDK 9
  • 10. SmartVision SDK – uživatelský manuál 4 Nápověda a dotazy Obecný postup Při hledání odpovědi na technický problém doporučujeme dodržovat následující postup:  pokuste se nalézt odpověď v této příručce,  obraťte se na svého prodejce zařízení,  prostudujte stránky společnosti Workswell s.r.o. na adrese http://www.workswell.cz,  či napište na email info@workswell.cz. 10 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 11. SmartVision SDK – uživatelský manuál 5 Požadavky na hardware PC Verze SmartVision SDK byl testován pro 32 a 64 bitové verze operačního systému operačního Windows následujících verzí: systému  Windows XP  Windows 7 32bit  Windows 7 64bit Na jiných verzích operačního systému Windows nebyl SmartVision SDK testován a společnost Workswell nezaručuje na těchto verzích Windows správnou funkci jednotlivých částí. V případě, že používáte Windows XP SP2 resp. Windows 7, je nutná aktualizace na vyšší verzi Windows XP SP3 resp. Windows Vista SP1 před zahájením instalace jednotlivých částí SmartVision SDK. Jako prerekvizity a správné používání DLL videoknihovny SmartVision library je potřeba do operačního systému doinstalovat:  .NET Framework 3.5 a vyšší (ve Windows 7 je již nainstalován)  SmartVision Runtime Package (součástí SmartVision SDK) Konfigurace PC Minimální konfigurace pro SmartVision SDK na operační systém Windows 7 je následující:  Procesor Intel: min. 2 GHz  paměť: min. 2 GB RAM,  pevný disk: min. 100 GB,  Gigabitový Ethernetový port s řadičem Intel podporující Jumboframe min. 9kB,  klávesnice a myš,  grafický adaptér a monitor s odpovídajícím rozlišením. Workswell s.r.o. | SmartVision SDK 11
  • 12. SmartVision SDK – uživatelský manuál 6 Aktualizace a kompatibilita Aktualizace Nejnovější verze SmartVision SDK ,tj. jak SmartVision Runtime Package, tak SmartVision videoknihovny SmartVision library ale i příslušných tetovacích aplikací naleznete na SDK webových stránkách www.workswell.cz , kde je umístěna nejnovější verze těchto částí. Vzhledem k požadavku, na co nejrychlejší úpravu a opravu knihovny si společnost Workswell, vyhrazuje právo na zasílání upozornění na nejnovější update SmartVision SDK na uživatelský email zákazníka. Výrazně však doporučujeme pravidelně kontrolovat nejnovější verze SmartVision Runtime Package a SmartVision library. V případě použití nových verzí stačí jednoduše přeinstalovat příslušnou stávající SmartVision library. Vždy však doporučujeme, aby zákazník stahoval současně, jak SmartVision Runtime Package tak také SmartVision library pro bezproblémový chod nových i stávajících funkcí na příslušném videohardwaru. Kompatibilni SmartVision library pomocí modulu SmartVision Runtime Package umí přistupovat videohardware k několika stovkám druhů videohardwaru, ať už se jedná o kamery, termokamery či a zdroje videa videograbbery. Základem je obsáhlá databáze ovladačů pro snadné napojení videohardwaru, ať s nutností či bez příslušného videograbberu. Uživatel tak není nucen instalovat jiné ovladače a může se věnovat samostatnému zpracování videodat. Mezi podporované protokoly patří: 1) Paralelní digitální rozhraní s příslušným videograbberem - TTL rozhraní - RS422 - LVDS 2) CameraLink protokol s příslušným videograbberem 3) Gigabit Ethernet (GigE) protokol s a bez nutnosti videograbberu 4) Fast Ethernet IP protokol s a bez videograbberu - MJPEG 5) IEEE 1394 Firewire protokol s a bez nutnosti videograbberu - IIDC (DCAM) 6) USB 2.0 protokol bez nutnosti videograbberu - DirectShow produkty jako jsou webkamery, mikroskopy, skenery, apod. 7) USB 3.0 protokol bez nutnosti videograbberu - AIA USB3 Vision produkty Všechny výše uvedené rozhraní jsou podporovány s framegrabbery společnosti National Instruments, popř. s jejími kompatibilními klony pro rozhraní PCI, PCIexpress. Pro některé druhy rozhraní není nutné dokupovat speciální videograbbery a lze použít standardní integrované porty v PC, je však nutné zajistit příslušné parametry videopřenosu, definované v jednotlivých standardech IEEE či AIA. 12 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 13. SmartVision SDK – uživatelský manuál Vzhledem k velkému počtu a množství každoročně vyráběných typů zařízení, nemůže společnost Workswell s.r.o. garantovat podporu všech výše uvedených protokolů u všech výrobců. Proto doporučujeme před zakoupením SmartVision SDK kontaktovat příslušného prodejce SmartVision SDK či technickou podporu společnosti Workswell ohledně výsledné kompatibility SmartVision SDK a cílového videohardwaru. Za případné nekompatibility SmartVision SDK a příslušného videohardwaru či kamery nenese společnost Workswell s.r.o. žádnou zodpovědnost. Dokumentace Na oficiálních stránkách společnosti Workswell s.r.o. naleznete všechny příslušné dokumentační listy, uživatelské manuály či technické informace. Pro technický dotaz či nápovědu postupujte dle kapitoly Nápověda a dotazy. Podporovaní Mezi podporované výrobce videohardwaru patří tyto společnosti: výrobci 1) Adimec CCD Cameras 2) Allied Vision Technologies 3) Atmel Corporation 4) Basler Vision Technologies 5) Baumer Optronic 6) Cohu Inc. 7) Costar Imaging 8) DVC Company 9) Dalsa 10) Flir Systems AB 11) Fairchild Imaging 12) Flovel Co. 13) Hamamatsu 14) Hitachi Kokusai Electronic 15) Imaging Solutions 16) Imperx 17) Indigo Systems 18) JAI 19) Jenoptik Optical System 20) Mikrotron 21) NET GmbH 22) National Instruments 23) PCO AG 24) Perkin Elmer Optoelectronics 25) Photonfocus 26) PixeLINK 27) Point Gray Research 28) Prosilica Inc. 29) Pulnix 30) QImaging Corporation 31) Raytheon Commercial Infrared 32) Redlake MASD Inc. 33) SVS Vistek 34) Sentech 35) Sensors Unlimited Workswell s.r.o. | SmartVision SDK 13
  • 14. SmartVision SDK – uživatelský manuál 36) Sensovation AG 37) Silicon Imaging 38) Smartek 39) Sony 40) Takex 41) The Imaging Source 42) Toshiba 43) UNIQ Vision Inc 44) VDS Vosskuhler 45) Vieworks 46) E2v 47) iSVi 14 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 15. SmartVision SDK – uživatelský manuál 7 Licenční systém SmartVision Popis Součástí knihovny SmartVision library je také nástroj pro udělení licence pro dané licenčního PC, resp. aplikaci, která využívá knihovny SmartVision library. Lincenční nástroj je systému a automaticky spuštěn při instalaci knihovny SmartVision library (nutné nejdříve přidělení nainstalovat modul SmartVision Runtime Package). Proto doporučujeme dokončení licence procesu licencování již při samotné instalaci knihovny SmartVision library. V případě budoucích změn v licenci, či zakoupení FULL verze a přechodu z TRIAL verze je možné spustit licenční systém manuálně. K těmto účelům slouží program SmartVision Activator . Odkaz na SmartVision Activator je umístěn ve Start nabídce v cestě "Všechny programyWorkswell SmartVision". Podmínkou správného spuštění je nutnost spustit SmartVision Activator s administrátorskými právy. Bez aktivace jedné z verzí (tj. FULL či TRIAL) nebude knihovna SmartVision library funkční. TRIAL verze funguje pouze s aktivním připojením k internetu a je platná po dobu 7-dní bez omezení. K aktivaci FULL verze je nutné zakoupit sériové číslo ke knihovně SmartVision library od společnosti Workswell a zadat ho buď při instalaci, či manuálně přes nástroj SmartVision Activator. Aktivaci je možné provést, pouze pokud je počítač připojen k internetu. Při zadávání zákaznických informací do formulářů si společnost Workswell vyhrazuje právo uložit tyto informace na licenčním serveru společnosti a zároveň se zavazuje, že tyto informace neposkytne třetím stranám a jiným obchodním subjektům. V následujícím průvodci jsou ukázány správné kroky pro úspěšné přidělení licence: 1) Spuštění licenčního systému pomocí aplikace SmartVision Activator Workswell s.r.o. | SmartVision SDK 15
  • 16. SmartVision SDK – uživatelský manuál 2) Volba typu licence – TRIAL či FULL v aplikaci SmartVision Activator 3) Vyplnění informací a sériového čísla pro verzi TRIAL a FULL v aplikaci SmartVision Activator 16 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 17. SmartVision SDK – uživatelský manuál 4) Odesílání uživatelských informací na licenční server Workswell 5) Úspěšné odeslání žádosti na licenční server Workswell Workswell s.r.o. | SmartVision SDK 17
  • 18. SmartVision SDK – uživatelský manuál 6) Zaslání potvrzovacího emailu z licenční serveru Workswell - Po zaslání žádosti o TRIAL verzi Vám přijde na zadaný email potvrzovací zpráva, kterou je nutné aktivovat. 7) Úspěšné dokončení instalace a licenčního systému Workswell - Po potvrzení a odsouhlasení licenčních podmínek a potvrzení serverem se Vám zobrazí úspěšné dokončení celého procesu. 18 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 19. SmartVision SDK – uživatelský manuál Deaktivace Společnost Workswell umožňuje přenos již zakoupené licence knihovny SmartVision platné FULL library na jiné PC. Důvodem přenosu může být upgrade či oprava stávajícího PC, licence a popřípadě možnost implementace videoaplikace na jiném než cílovém PC. K těmto přenos na jiné účelům slouží aplikace SmartVision Deactivator PC Pokud budete chtít přenést licenci FULL verze na jiný počítač, je nutné na aktuálním počítači s instalovaným SmartVision library, kde byla licence aktivována, spustit deaktivační software SmartVision Deactivator. Tento program je nutné spustit s administrátorskými právy. Deaktivaci je možné provést pouze pokud je aktuální počítač připojen k internetu. Součástí licenčních podmínek je podmínka, že na každém počítači využívající DLL funkce z knihovny SmartVision library musí být zakoupena FULL licence či alespoň aktivní TRIAL verze knihovny. V opačném případě, se zákazník vystavuje soudnímu řízení. Na následujícím obrázku je ukázána správná deaktivace systému a postup: 1) Spuštění deaktivačního nástroje a zadání sériového čísla Workswell s.r.o. | SmartVision SDK 19
  • 20. SmartVision SDK – uživatelský manuál 8 Instalace SmartVision SDK Instalace SmartVision SDK se skládá z několika modulů, z nichž základním je instalace sady SmartVision ovladačů pro možnost připojení na videohardware, tedy před samotným Runtime používáním DLL videoknihovny SmartVision library. Tato sada ovladačů je nazývána Package SmartVision Runtime Package a nainstaluje na cílovou stanici či PC s operačním systémem Windows všechny potřebné ovladače. Seznam podporovaného hardwaru a zdrojů videosignálu naleznete v kapitole Aktualizace a kompatibilita. SmartVision SDK díky modulu SmartVision Runtime Package podporuje více než 47 výrobců videohardwaru a kamer. V následujícím odstavci je popsán bod po bodu instalační proces SmartVision Runtime Package: 1) Spuštění a extrakce SmartVision Runtime Package samoinstalačního balíku 2) Inicializace instalačního procesu SmartVision Runtime Package 20 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 21. SmartVision SDK – uživatelský manuál 3) Přehled licencovaných sad ovladačů pro kompatibilní videohardware a spuštění instalace SmartVision Runtime Package 4) Instalační proces SmartVision Runtime Package Workswell s.r.o. | SmartVision SDK 21
  • 22. SmartVision SDK – uživatelský manuál 5) Dokončení instalace a restart počítače a opětovné spuštění operačního systému - Po instalaci SmartVision Runtime Package prosím proveďte manuální restart počítače. Během tohoto restartu se propojí a inicializují všechny potřebné ovladače pro budoucí videohardware a kamery. 22 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 23. SmartVision SDK – uživatelský manuál Instalace Po úspěšné instalaci sady SmartVision Runtime Package je nutné spustit instalaci SmartVision DLL knihoven SmartVision library. Díky této instalaci se do operačního systému library nainstalují DLL knihovny pro budoucí vývoj a přístup na kamerový systém a videohardware, zároveň se prováží tyto DLL knihovny s balíkem SmartVision Runtime Package. Průchod instalací popisuje následující průvodce. Na konci této instalace je potřeba provézt volbu licence. Pro zkušební účely je povoleno využívat 7denní TRIAL verzi, kde si můžete vyzkoušet chování a vývoj aplikace s knihovnou SmartVision library. Po celou dobu používání v TRIAL verzi je nutné být připojený k internetu, neboť během této doby se kontrolují licenční podmínky se serverem společnosti Workswell. V případě, že uživatel chce využívat DLL funkce pro budoucí aplikaci i v offline režimu a na dobu neomezenou, je nutné zakoupit SmartVision SDK u společnosti Workswell a aktivovat FULL verzi. Po zakoupení Vám bude zasláno sériové číslo, které bude ověřeno přes licenční server a následně povolena trvalá licence pro daný počítač. Samotná licence a nákup jednoho sériového čísla se váže vždy a pouze na jeden počítač, na kterém je SmartVision library spuštěno a využíváno. 1) Spuštění instalace a extrakce SmartVision library Workswell s.r.o. | SmartVision SDK 23
  • 24. SmartVision SDK – uživatelský manuál 2) Inicializace instalace SmartVision library 3) Přehled instalačních pluginů, modulů a prvků SmartVision library 24 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 25. SmartVision SDK – uživatelský manuál 4) Zahájení instalace a správný proces kopírování SmartVision library 5) Dokončení instalace SmartVision library 6) Poinstalační spuštění licenčního systému SmartVision library - Po dokončení instalace DLL knihovny SmartVision library je potřeba projít licenčním procesem. Tento proces je automaticky spuštěn po dokončení instalace SmartVision library. Přesný postup a popis je popsán v kapitole Licenční systém SmartVision. Workswell s.r.o. | SmartVision SDK 25
  • 26. SmartVision SDK – uživatelský manuál 9 Spouštění TRIAL verze Spouštění Pokud je na počítači aktivována TRIAL verze, při každém spuštění knihovny TRIAL verze SmartVision library (nebo aplikace Camera Explorer) se zobrazí vyskakovací okno ovladačů videohardwaru od společnosti National Instruments oznamující, že balík ovladačů této společnosti běží také ve zkušební verzi. Okno je nutné zavřít stisknutím jednoho z tlačítek Evaluate nebo Cancel. 26 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 27. SmartVision SDK – uživatelský manuál 10 Popis balíku SmartVision SDK SmartVision Součástí standardního dodání SmartVision SDK je sada ovladačů SmartVision Runtime Runtime Package. Ta obsahuje ovladače na kompatibilní videohardware a kamerový Package systém. Tato část zajišťuje kompatibilitu a přímý přístup na velké množství videohardwaru a jednotné rozhraní pro knihovnu SmartVision library. Kompletní soupis podporovaného hardwaru naleznete v sekci Aktualizace a kompatibilita. Některé z těchto ovladačů využívají také sadu MAX od společnosti National Instruments a dalších společností. Společnost Workswell s.r.o. plně uznává veškeré licenční ujednání se společností National Instruments a veškeré poplatky za užívání tohoto modulu ve své knihovně SmartVision library a SmartVision Runtime Package. Camera Po úspěšné instalaci SmartVision library se Vám do počítače nainstaluje také Explorer pomocná aplikace Camera Explorer. Tato aplikace slouží k vygenerování seznamu parametrů z aktuálně připojené kamery a videohardwaru. V tomto textovém souboru pak uživatel nalezne kompletní sadu XML uzlů, tedy jednotlivých atributů ve stromu příslušného videohardwaru či kamery. 1) Spuštění aplikace Camera Explorer - Po otevření aplikace si uživatel může zvolit kameru či dostupný videohardware, který je kompatibilní s knihovnou SmartVision library. Workswell s.r.o. | SmartVision SDK 27
  • 28. SmartVision SDK – uživatelský manuál 2) Vygenerování souboru s popisem a seznamem dostupných atributů pro budoucí využití v DLL funkcích SmartVision library 3) Výsledný textový soubor s popisem a seznamem dostupných atributů pro budoucí využití v DLL funkcích SmartVision library SmartVision Hlavní částí SmartVision SDK je instalovaná sada DLL funkcí SmartVision library pro library - DLL kompletní ovládání, čtení a přístup na data videohardwaru. Konkrétní cesta k těmto knihovny knihovnám je popsána v souboru README.RTF Popis jednotlivých funkcí je uveden v kapitole SmartVision library DLL funkce. 28 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 29. SmartVision SDK – uživatelský manuál 11 SmartVision library DLL funkce Obecný popis Všechny DLL funkce kromě void funkcí vrací hodnotu Integer = 1, když jsou DLL funkcí a úspěšně dokončeny. Pokud však nastala chyba, vrácí hodnotu 0 nebo -1 (typicky u záznam chyb v funkcí get) dle typu chyby. logu Veškeré tyto chyby jsou zapsány do tzv. error logu, který je možné přečíst z textového souboru error_log.txt, který je vytvořen ve stejné cestě kde je spuštěná samotna DLL knihovna SmartVision library. Spuštění Pro ovládání kamery je nutné nejprve spustit tzv. session pomocí funkce session a OpenSession. Parametrem této funkce je název rozhraní kamery, který lze zjistit v ukončení poli camera Interface v pomocném programu Camera Explorer. session Otevření session chvíli trvá a proto je nutné před další prací s kamerou periodicky provádět polling pomocí funkce GetSessionStatus. Session se nepodaří spustit, pokud ke kameře již přistupuje jiný proces. Je nutné ukončit session pomocí funkce CloseSession před ukončením aplikace, ze které se volá DLL, jinak v paměti zůstane běžící proces příslušící spuštěné session. Popis příslušných DLL funkcí:  void OpenSession(char cameraInterface[]) o Otevírá Session o char cameraInterface[]nMode - string obsahující název rozhraní kamery získaný pomocí aplikace Camera Explorer  void CloseSession() o Ukončuje Session  int8_t GetSessionStatus() o return:  0 = Session není spuštěná  1 = Session je spuštěná Otevření a Po spuštění session je možné otevřít okno s videem pomocí funkce OpenVideo. zavření okna s Dále už je možné libovolně volat ostatní funkce z knihovny SmartVision SDK. Po videem ukončení práce je nutné zavřít okno s videem funkcí CloseVideo a ukončit session pomocí funkce CloseSession. Popis příslušných DLL funkcí:  void OpenVideo() o Otevírá okno s videem. Okno je potom nutné zapozicovat na obrazovce pomocí funkcí ze systémové User32.dll knihovny Workswell s.r.o. | SmartVision SDK 29
  • 30. SmartVision SDK – uživatelský manuál  void CloseVideo() o Zavírá okno s videem. Ovládání Veškeré hardwarové funkce příslušného videohardwaru je možné ovládat parametrů pomocí funkcí SetAttribute. Tyto funkce mají jako parametr název XML uzlu, příslušného který používá driver GigE rozhraní, případně dalších rozhraní (DirectShow a videohardwaru podobně). V XML každé kamery jsou uvedeny všechny hardwarové atributy, které je na kameře možné ovládat. Seznam všech dostupných atributů je možné uložit do textového souboru programem Camera Explorer, který je součástí SmartVision library. Uložený textový soubor obsahuje výpis všech atribut ve formátu: [prvniXMLuzel::druhyXMLuzel::n-tyXMLuzel] Description = "Popis XML atributy ulozeny v XML kamery" Type = "Datovy typ" (UINT32, INT64, DBL, String, Enum, Bool, Command) Read = TRUE/FALSE (je mozne atribut cist?) Write = TRUE/FALSE (je mozne atribut zapisovat?) Min = "Minimalni hodnota rozsahu atributu" Max = "Maximalni hodnota rozsahu atributu" Value0 = "Prvni hodnota enumeratoru" Value1 = "Druha hodnota enumeratoru" ValueN = "N-ta hodnota enumeratoru" Popis příslušných DLL funkcí:  int8_t SetAttribute(char activeAttribute[], double valueDBL, char valueString[]) o Funkce pro nastavování hardwarových atribut kamery o char activeAttribute[] - název XML uzlu vyčtený ze souboru vygenerovaného pomocí aplikace Camera Explorer (bez složených závorek, ovšem včetně oddělovacích dvojteček) o double valueDBL - číselná hodnota atributu. GiGE XML norma specifikuje tyto datové typy UINT32, INT64, DBL, String, Enum, Bool, Command. Parametr valueDBL zahrnuje datové typy UINT32, INT64, DBL, Bool (0 = false, 1 = true) a Command (0 = off, 1 = on). Je nutné si pohlídat platný rozsah atributu, uložený opět v textovém souboru vygenerovaném aplikací Camera Explorer. o char ValueString[] - string hodnota atributu. Zahrnuje datové typy String a Enum. Pro enumerátory jsou v textovém souboru uloženy všechny platné hodnoty enumerátoru a tyto se předávají funkci jako string. o return:  1 = nastavení úspěšné  0 = nastavení úspěšné/chyba 30 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 31. SmartVision SDK – uživatelský manuál  int8_t SetWindowSize(int16_t width, int16_t height) o Nastavuje velikost okna s videem. Okno je vždy umístěno na pozici (0,0) o int16_t width - horizontální velikost okna v px o int16_t height - vertikální velikost okna v px o return:  1 = nastavení úspěšné  0 = nastavení úspěšné/chyba Čtení Obdobou ovládacích funkcí jsou funkce pro čtení parametrů z videohradwaru parametrů GetAttribute, které vyčtou z parametru videohardwaru aktuální hodnotu. Tyto příslušného funkce mají jako parametr název XML uzlu, který používá driver GigE rozhraní, videohardwaru případně dalších rozhraní (DirectShow a podobně). V XML každé kamery jsou uvedeny všechny hardwarové atributy, které je na kameře možné ovládat. Seznam všech dostupných atributů je možné uložit do textového souboru programem Camera Explorer, který je součástí SmartVision library. Rozšířenou verzí funkce GetAttribute je funkce GetAttributeInfo, která z parametru vyčte doplňkové informace videohardwaru. Popis příslušných DLL funkcí:  int8_t GetAttribute(char activeAttribute[], double *valueDBL, char valueString[], Int32 lengthIn) o Vyčte hodnotu hardwarového atributu kamery o char activeAttribute[] - název XML uzlu vyčtený ze souboru vygenerovaného pomocí aplikace Camera Explorer (bez složených závorek, ovšem včetně oddělovacích dvojteček) o double *valueDBL - pointer na proměnnou typu double, do které se zapíše číselná hodnota atributu. Proměnná zastupuje datové typy UINT32, INT64, DBL, Bool (0 = false, 1 = true) a Command (0 = off, 1 = on) o char valueString[] - string hodnota atributu. Zahrnuje datové typy String a Enum o Int32 lengthIn - očekávaná délka obdrženého stringu (kvůli vyhrazení paměti pro výstupní string char ValueString*+) o return:  1 = nastavení úspěšné  0 = nastavení úspěšné/chyba Workswell s.r.o. | SmartVision SDK 31
  • 32. SmartVision SDK – uživatelský manuál  int8_t GetAttributeInfo(char activeAttribute[], int8_t *type, int8_t *readable, int8_t *writable, double *minimum, double *maximum, double *valueDBL, char valueString[], int32_t len) o Vyčte hodnotu hardwarového atributu kamery a další doplňkové informace o atributu o char activeAttribute[] - název XML uzlu vyčtený ze souboru vygenerovaného pomocí aplikace Camera Explorer (bez složených závorek, ovšem včetně oddělovacích dvojteček) o int8_t *type - pointer na proměnnou, do které se zapíše datový typ daného atributu (0 = UINT32, 1 = INT64, 2 = DBL, 3 = String, 4 = Enum, 5 = Bool, 6 = Command) o int8_t *readable - je mozne atribut cist? (0 = false, 1 = true) o int8_t *writable - je mozne atribut zapisovat? (0 = false, 1 = true) o double *minimum - pointer na proměnnou, do které se zapíše minimalni hodnota rozsahu atributu o double *maximum - pointer na proměnnou, do které se zapíše maximalni hodnota rozsahu atributu o double *valueDBL - pointer na proměnnou typu double, do které se zapíše číselná hodnota atributu. Proměnná zastupuje datové typy UINT32, INT64, DBL, Bool (0 = false, 1 = true) a Command (0 = off, 1 = on) o char valueString[] - string hodnota atributu. Zahrnuje datové typy String a Enum o Int32 lengthIn - očekávaná délka obdrženého stringu (kvůli vyhrazení paměti pro výstupní string char ValueString*+) o return:  1 = nastavení úspěšné  0 = nastavení úspěšné/chyba  void GetFPS(double *AcquiredFPS, double *ProcessedFPS) o Zjistí počet snímků za vteřinu ve videu o double *AcquiredFPS - počet snímků získaných z kamery před processingem o double *ProcessedFPS - počet snímků získaných z kamery po processingu  void GetVideoResolution(int16_t *ResolutionX, int16_t *ResolutionY) o zjistí aktuální rozlišení videa o int16_t *ResolutionX - pointer na proměnnou typu int16, do se zapíše horizontální rozlišení videa o int16_t *ResolutionY - pointer na proměnnou typu int16, do se zapíše vertikální rozlišení videa 32 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 33. SmartVision SDK – uživatelský manuál Uložení V některých případech je nutné přenastavit defaultní parametry parametrů a videohardwaru pro koncovou aplikaci (typicky rozlišení kamery). V případě automatické využití funkcí set se příslušné parametry aplikují přímo na aktuální načtení videohardware, ale již neuloží do vnitřní paměti samotného videohardwaru. v novém Proto v případě odpojení a opětovného zapojení dojde k načtení defaultních Session hodnot a tedy k přepisu již nastavených parametrů. Pro tyto případy, kdy je potřeba zajistit trvalé nastavení parametrů při opětovném připojení videohardwaru, je k dispozici speciální funkce, která uloží aktuálně nastavené parametry do paměti počítače. Ty jsou následně načteny při opětovném připojení videohardwaru:  int8_t SaveCamSettings(void) o Uloží aktuální nastavení všech atributů kamery. Při zavření a novém spuštění session jsou tato nastavení obnovena. o return:  1 = nastavení úspěšné  0 = nastavení úspěšné/chyba Uložení a Základním a nejjednodušším způsobem zachycení aktuálního obrazu načtení z videohardwaru je načtení aktuálního obrazu z videookna do pracovní paměti aktuálního počítače. K tomuto účelu slouží funkce MakeSnap. snímku z paměti  void MakeSnap(uint8_t buffer[], int32_t length) počítače o požadavek na vytvoření snímku aktuálního videa do bufferu (pole). Při volání je nutné parametrem length zadat požadovanou délku čteného bufferu. o int32_t length - délka čteného bufferu (vypočítá se jako horizontální × vertikální rozlišení × 3 (~3 barvy), rozlišení lze rychle získat funkcí GetVideoResolution) o uint8_t buffer - pointer na jednorozměrné pole datového typu byte délky length, ve kterém jsou uložena poslední snímková data. Data jsou v poli uložena po jednotlivých pixelech zleva do prava a dále po jednotlivých řádcích snímku. Každé po sobě jdoucí tři prvky pole odpovídají barevným složkám každého pixelu (R,G,B). Tedy např. pro matici pixelů *1,2;3,4+ bude pole vypadat: {R1,G1,B1,R2,G2,B2,R3,G3,B3,R4,G4,B4}. Nastavení Knihovna SmartVision obsahuje sadu softwarových filtračních algoritmů softwarové pomocí, kterých je možno softwarově přepočítat obrazovou informaci. Díky filtrace obrazu tomu je umožněno přepočítat jasové složky, kontrast, ostrost či provádět barevné transformace.  void SetSwBrightness(int8_t nVal) o nastavení hodnoty jasu na požadovanou úroveň, rozsah -100 až 100 o nVal - hodnota jasu  rozsah -100 až 100 Workswell s.r.o. | SmartVision SDK 33
  • 34. SmartVision SDK – uživatelský manuál  int8_t GetSwBrightness(void) o získání aktuální hodnoty jasu o return - hodnota jasu  rozsah -100 až 100, výchozí hodnota 0  void SetSwContrast(double fVal) o nastavení hodnoty kontrastu na požadovanou úroveň, rozsah 0.000 až 2.000 o nVal - hodnota kontrastu  rozsah 0.000 až 2.000  double GetSwContrast(void) o získání aktuální hodnoty kontrastu o return - hodnota jasu  rozsah 0.000 až 2.000, výchozí hodnota 1.000  void SetSwSharpness(int8_t nSharp) o nastavení USM (unsharp mask) doostrostření obrazu na požadovanou úroveň, rozsah 0 až 100 o nSharp - hodnota doostrostření  rozsah 0 až 100, výchozí hodnota 0 = doostřování vypnuto  int8_t GetSwSharpness(void) o získání aktuální hodnoty doostrostření obrazu o return - hodnota doostrostření obrazu  rozsah 0 až 100, výchozí hodnota 0 = doostřování vypnuto  void SetSwColorTransformationValueRGB(double fR, double fG, double fB) o nastavení hodnoty násobičů barevných složek obrazu na požadovanou úroveň, rozsah každé složky 0.000 až 2.000 o fR - hodnota násobiče červené složky  rozsah 0.000 až 2.000 o fG - hodnota násobiče zelené složky  rozsah 0.000 až 2.000 o fB - hodnota násobiče modré složky  rozsah 0.000 až 2.000 34 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 35. SmartVision SDK – uživatelský manuál  void GetSwColorTransformationValueRGB(double *fR, double *fG, double *fB) o získání hodnot násobičů barevných složek obrazu. Parametry funkce jsou pointery na proměnné typu double, do kterých budou uloženy hodnoty násobičů barevných složek o double *fR - pointer na proměnnou, do které se zapíše hodnota násobiče červené složky, výchozí hodnota 1.000 o double *fG - pointer na proměnnou, do které se zapíše hodnota násobiče zelené složky, výchozí hodnota 1.000 o double *fB - pointer na proměnnou, do které se zapíše hodnota násobiče modré složky, výchozí hodnota 1.000  void SetSwPolynomTransformation(double fConstX3, double fConstX2, double fConstX1, double fConstX0) o nastavení hodnot parametrů pro transformaci intenzit pixelů obrazu. Parametry zastupují jednotlivé koeficienty polynomu 3. řádu. o double fConstX3 - hodnota koeficientu třetího řádu  rozsah - plný rozsah proměnné typu double precision float o double fConstX2 - hodnota koeficientu druhého řádu  rozsah - plný rozsah proměnné typu double precision float o double fConstX1 - hodnota koeficientu prvního řádu  rozsah - plný rozsah proměnné typu double precision float o double fConstX0 - hodnota koeficientu nultého řádu  rozsah - plný rozsah proměnné typu double precision float Workswell s.r.o. | SmartVision SDK 35
  • 36. SmartVision SDK – uživatelský manuál  void GetSwPolynomTransformation(double *fConstX3, double *fConstX2, double *fConstX1, double *fConstX0) o získání hodnot parametrů pro transformaci intenzit pixelů obrazu. Parametry zastupují jednotlivé koeficienty polynomu 3. řádu. Parametry funkce jsou pointery na proměnné typu double, do kterých budou uloženy hodnoty koeficientů. o double *fConstX3 - pointer na proměnnou, do které se zapíše hodnota koeficientu třetího řádu  rozsah - plný rozsah proměnné typu double precision float  výchozí hodnota = 0 o double *fConstX2 - pointer na proměnnou, do které se zapíše hodnota koeficientu druhého řádu  rozsah - plný rozsah proměnné typu double precision float  výchozí hodnota = 0 o double *fConstX1 - pointer na proměnnou, do které se zapíše hodnota koeficientu prvního řádu  rozsah - plný rozsah proměnné typu double precision float  výchozí hodnota = 1 o double *fConstX0 - pointer na proměnnou, do které se zapíše hodnota koeficientu nultého řádu  rozsah - plný rozsah proměnné typu double precision float  výchozí hodnota = 0 Ovládání Některé aplikace pro zpracování obrazu jsou značně zatíženy nestabilitou digitální obrazové scény. Například jako jsou vibrace automobilu či rotace ramena, na stabilizace kterém je kamerový systém připevněn. K odstranění a zlepšení stability obrazu obrazové scény lze použít speciální algoritmus digitální stabilizace. Ten pomocí korelačních funkcí a sledování pohybu obrazové scény dokáže výrazně zlepšit výsledný obraz.  void StabON() o zapnutí stabilizace  void StabOFF() o vypnutí stabilizace 36 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 37. SmartVision SDK – uživatelský manuál  void StabSetup(uint16_t xResolution, uint16_t sensitivity, uint8_t angle, uint8_t corrRotation, uint8_t interpolate) o nastavení pokročilých parametrů stabilizace o uint16_t xResolution - rozlišení použité pro subsampling obrazu, který je použit pro stabilizaci. Nižší xResolution znamená zrychlení algoritmu stabilizace a snížení výpočetní náročnosti za cenu ztráty detailů použitých k rozlišení oblasti pro stabilizaci. Zadává se pouze horizontální rozlišení, vertikální je dopočítáno tak, aby byl dodžen poměr stran vstupního obrazu. Při změně rozlišení je automaticky stabilizace vypnuta a je nutné ji znovu zapnout fcí StabON().  rozsah = 0 - 65536, výchozí hodnota = 1024 o uint16_t sensitivity - citlivost vyhledávání oblasti pro stabilizaci v obrazu. Vyšší citlivost znamená více tolerantní algoritmus stabilizace, ovšem za cenu možnosti zachytit falešnou oblast používanou pro stabilizaci. Nižší citlivost je přísnější ve vyhledávání oblasti v obraze.  rozsah = 0 - 100, výchozí hodnota = 20 o uint8_t angle - nastavení možnosti rotace oblasti používané pro stabilizaci. Zásadně ovlivňuje výpočetní náročnost stabilizace.  rozsah = 0 - 180, výchozí hodnota = 4 o uint8_t corrRotation - zapnutí/vypnutí stabilizace rotace kamery. Má zásadní vliv na výpočetní náročnost stabilizace.  1 = zapnuto, 0 = vypnuto, výchozí hodnota = 0 o uint8_t interpolate - zapnutí/vypnutí interpolace výstupního obrazu při zapnuté stabilizaci rotace kamery. Opět má velký vliv na výpočetní náročnost stabilizace.  1 = zapnuto, 0 = vypnuto, výchozí hodnota = 0  void StabShowOrigVideo(uint8_t showOrigVideo) o demonstrační funkce, která otevře přídavné okno s nestabilizovaným obrazem (pro porovnání stabilizovaného a nestabilizovaného videa) o uint8_t showOrigVideo - otevře/zavře okno s nestabilizovaným obrazem  1 = zapnuto, 0 = vypnuto, výchozí hodnota = 0 Workswell s.r.o. | SmartVision SDK 37
  • 38. SmartVision SDK – uživatelský manuál Získání Pro přístup k aktuálním nezměněným obrazovým datům z kamery lze použít pointeru na funkci GetRawImagePointer. Tato funkce vrátí pointer na blok paměti, kde je blok paměti uložen aktuální nezpracovaný snímek z kamery. s aktuálním nezpracovaným Jednorozměrné pole bytů v paměti obsahuje čistá obrazová data snímku. snímkem z Formát dat odpovídá datovému typu obrazu. Pro rekonstrukci obrazu je nutné kamery znát další návratové parametry funkce GetRawImagePointer. První řádek snímku zrekonstruujeme takto: začneme u PixelPointerOut a pokračujeme po blocích odpovídajících velikosti PixelSize až do XResolution (poslední pixel prvního řádku. První pixel druhého řádku získáme takto: PixelPointerOut + LineWidth a opět můžeme postupovat po blocích velikosti PixelSize. Takto postupujeme po řádcích až do YResolution (vertikální rozlišní = index posledního řádku). Černobílý snímek datového typu Mono8 má 8-bitovou hodnotu každého pixelu uloženou v jednom bytu. Každý byte pole z paměti tedy odpovídá jednomu pixelu. Radiometrický snímek datového typu Mono16 má 16-bitovou hodnotu každého pixelu uloženou ve dvou bytech. Hodnota pixelu potom odpovídá dvěma po sobě jdoucím bytům pole z paměti. Barevný snímek typu RGB32 má 32-bitovou hodnotu každého pixelu uloženou ve čtyřech bytech. Hodnota pixelu potom odpovídá čtyřem po sobě jdoucím bytům pole z paměti, přičemž první, druhý a třetí odpovídají červené, zelené a modré složce pixelu a čtvrtý byte je nulový.  int8_t GetRawImagePointer(uint64_t *PixelPointerOut, int32_t *BufferSize, int32_t *PixelSize, int32_t *LineWidth, int32_t *XResolution, int32_t *YResolution) o uint64_t PixelPointerOut - pointer na první pixel snímku v paměti (ve snímku vlevo nahoře) o int32_t PixelSize - počet bytů obsahujících hodnotu jednoho pixelu o int32_t BufferSize - celkový počet bytů snímku v paměti o int32_t LineWidth - délka jednoho řádku snímku v paměti (včetně pomocných obrazových pixelů) o int32_t XResolution - skutečné horizontální rozlišení snímku o int32_t YResolution - skutečné vertikální rozlišení snímku 38 Univerzální DLL videoknihovna| Workswell s.r.o.
  • 39. SmartVision SDK – uživatelský manuál Získání Pro přístup k aktuálním zpracovaným obrazovým datům z kamery lze použít pointeru na funkci GetOutImagePointer. Tato funkce vrátí pointer na blok paměti, kde je blok paměti uložen aktuální zpracovaný snímek z kamery (tedy snímek po průchodu s aktuálním softwarovými filtry, stabilizací, apod.). zpracovaným Funkce funguje totožně jako funkce GetRawImagePointer, bližší popis je tedy snímkem z stejný (viz výše). kamery  int8_t GetOutImagePointer(uint64_t *PixelPointerOut, int32_t *BufferSize, int32_t *PixelSize, int32_t *LineWidth, int32_t *XResolution, int32_t *YResolution) o uint64_t PixelPointerOut - pointer na první pixel snímku v paměti (ve snímku vlevo nahoře) o int32_t PixelSize - počet bytů obsahujících hodnotu jednoho pixelu o int32_t BufferSize - celkový počet bytů snímku v paměti o int32_t LineWidth - délka jednoho řádku snímku v paměti (včetně pomocných obrazových pixelů) o int32_t XResolution - skutečné horizontální rozlišení snímku o int32_t YResolution - skutečné vertikální rozlišení snímku Workswell s.r.o. | SmartVision SDK 39
  • 40. SmartVision SDK – uživatelský manuál 12 Tutoriál pro vývoj v jazyce C# Testovací Součástí balíku SmartVision SDK je také demonstrační aplikace v jazyce C#, která aplikace ukazuje jednoznačné využití všech DLL funkcí a vyčtení videodat. Principiálně je přístup, ovládání a čtení velmi podobné ať už se jedná o jazyk C, C++ či jiné standardní textové jazyky podporující import a přístup na DLL knihovny. Readme.txt V textovém souboru readme naleznete instrukce, kde nakopírovat příslušné DLL knihovny a jak s nimi manipulovat. V případě dotazů prosím postupujte dle instrukcí z kapitoly Nápověda a dotazy. 40 Univerzální DLL videoknihovna| Workswell s.r.o.