QArv
Program in knjižnica z grafičnim vmesnikom za ethernet kamere.
Kamere, ki jih priključimo na računalnik preko ethernet mrežnega vmesnika, so lahko zelo sposobne naprave z mnogo nastavitvami. Običajni programi, ki ponavadi zajemajo sliko s t.i. spletnih kamer, zato niso dovolj. Lahko se zanašamo na programsko opremo, ki nam jo dobavi proizvajalec kamere, s čimer se omejimo zgolj na njihove kamere. Po drugi strani ethernet kamere upoštevajo standard GenICam, kar načeloma omogoča uporabo katerekoli ustrezne kamere z istim programom. Tako imamo za operacijski sistem GNU/Linux na voljo knjižnico Aravis, ki je prosto programje. Ta programom, ki jo uporabljajo, omogoča upravljanje kamere. S pomočjo te knjižnice smo v našem društvu napisali grafični vmesnik za upravljanje kamere in zajem slike oz. videa, ki smo ga poimenovali QArv. A QArv ni le program, je tudi sam knjižnica, ki nudi grafični vmesnik drugim programom. Tako lahko drugi programi, ki želiko prejemati sliko s kamere, uporabijo QArv kot vmesnik za upravljanje. Ime QArv izhaja iz imen knjižnic Aravis in Qt, na katerih je QArv osnovan.
Kaj QArv nudi?
Za uporabnika
Oglejte si posnetke zaslona!
- Ogled videa, snemanje videa in slik.
- Osnovni nadzor nad kamero (število slik na sekundo, čas osvetlitve, ojačanje) ter enostavno izbiro izreza slike.
- Predvajalnik in prekodirnik za surov video, ki ga zajamemo s kamere.
- Avtomatsko nastavljanje velikosti podatkovnih paketov s kamere glede na nastavitev omrežnega vmesnika, kamor je priključena.
- Podroben dostop do vseh nastavitev kamere, ki jih lahko tudi shranimo, ponovno naložimo oz. zapišemo skupaj z videom.
- Osnovne transformacije slike: zasuk, zrcaljenje in negativ.
- Histogram in označevanje preosvetljenih pikslov na sami sliki.
Za programerja
- Razred QArvCamera, ki loči C++ del programa, ki uporablja Qt, od C dela, ki uprablja Aravis in posledično Glib/GObject in s tem prepreči konflikte. Ta razred daje neposreden dostop do osnovnih funkcij kamere. Dostop do naprednejših funkcij nudi z implementacijo programskega vmesnika QAbstractItemModel, s čimer se pokorava Qt-jevi paradigmi Model/View. To omogoča, da kamero uporabimo kot model za katerega od "pogledov", s čimer brez dodatnega dela dobimo poljuben grafični vmesnik.
- Razred QArvCameraDelegate, ki generira grafične vmesnike za dostop do posameznega tipa nastavitve kamere.
- Razred QArvGui, ki vsebuje grafični vmesnik, kot ga vidimo v samem programu. S tem razredom vdelamo QArv-jev grafični vmesnik v drug program. Razlika glede na samostojen program je v snemanju: namesto snemanja v datoteko QArvGui dostavlja slikovne okvirje gostiteljskemu programu preko Qt-jevega sistema signalov.
- Razreda QArvDecoder in QArvPixelFormat, ki predstavljata vtičnike. Ti pretvarjajo surove slikovne okvirje v OpenCV-jeve slike ali pa QImage. Trenutno so podprti dekoderji za 8, 10, 12 (pakiran ali pa ne) in 16-bitne sivinske okvirje. Poleg tega so podprti vsi tipi, ki jih razumeta knjižnici ffmpeg ali libav.
- Razred QArvRecordedVideo, ki prebere datoteko z opisom surovega videa in generira QArvDecoder, primeren za dekodiranje surovih okvirjev.
Posnetki zaslona
Kako do QArv
QArv je na voljo pod pogoji licence GNU General Public Licence, različice 3 ali novejše.
QArv potrebuje naslednja orodja:
- Qt 4.8 ali novejši
- aravis 0.2 ali novejši
- OpenCv 2.4 ali novejši
- gstreamer 1.0.7 ali novejši
- libav 0.8.5 oziroma ffmpeg ali novejši
Vsa orodja so tipično na voljo kot del vaše Linux distribucije. Vtičniki za gstreamer, ki jih potrebuje QArv, so v paketih "good", "bad", "ugly" in "libav".