Astronomsko društvo Vega – Ljubljana

QArv

Program in knjižnica z grafičnim vmesnikom za ethernet kamere.

QArv 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

Osnovne nastavitve kamere.

Osnovne nastavitve kamere

Nastavitve slike in programa

Nastavitve slike in programa

Označevanje preosvetljenih pikslov

Označevanje preosvetljenih pikslov

Dostop do vseh nastavitev kamere

Dostop do vseh nastavitev kamere

Nastavitve snemanja

Nastavitve snemanja

Podokna lahko razporejamo poljubno

Poljubna razporeditev podoken

Kako do QArv

QArv je na voljo pod pogoji licence GNU General Public Licence, različice 3 ali novejše.

QArv potrebuje naslednja orodja:

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".

Kontakt

Pišite nam!