Python vmesnik za modul kamere: spoznajte picamero!
V kolikor si lastite Raspberry Pi kamera modul, ste najbrž uporabljali raspistill in raspivid, orodji za uporabo kamere preko ukazne vrstice. Dave Jones, administrator podatkovnih baz, razvijalec programske opreme in SQL vseved iz Manchestra, je delal na podobni in popolni rešitvi z več funkcijami v Pythonu. To pomeni, da je dostop do modula kamere mogoč neposredno preko Python skripte, brez uporabe os.system ali izvrševanja podprocesa.
Za navdušence nad Pythonom je implementacija picamere zares lepa in čudovita knjižnica, ki jo je mogoče uporabiti pri kateremkoli projektu. Zares dobro deluje pri prikazovanju uporabe Pi kamere in tudi pri realnih aplikacijah. Dobra stran te knjižnice je, da se za delo pri uporabi Raspberry Pi v povezavi z ostalo vgrajeno elektroniko, ni potrebno učiti ali poznati programske jezike nižjega nivoja ali postopka programiranja mikroprocesorja. Namesto tega je na voljo vrsta višjenivojskih jezikov med katerimi lahko izbirate, eden izmed teh je tudi Python. Ta razširitev tako odpira veliko možnosti za uporabo na večih področjih.
Primer uporabe:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import picamera from time import sleep camera = picamera.PiCamera() camera.capture('image.jpg') camera.start_preview() camera.vflip = True camera.hflip = True camera.brightness = 60 camera.start_recording('video.h264') sleep(5) camera.stop_recording() |
Lahko pa naredite tudi stvari, kot je ta:
1 2 3 |
for i in range(100): camera.brightness = i sleep(0.1) |
in uživate v predogledu slike, ki se ji spreminja svetlost.
Knjižnica ima veliko konfiguracij – spremenite lahko svetlost, kontrast, nasičenost, efekte slike, način izpostavljenosti, kot tudi pomožen prikaz v živo. Posnamete lahko posamezne slike in zaporedja slik, pa tudi video pretoke. Spodaj si lahko ogledate predstavitev picamere, ki jo je Dave pokazal na 16. Manchester Raspberry Jamu – prikazal je osnovno uporabo modula preko pisanja ukazov v Pythonovo konzolo na njegovem prenosniku, na monitorju pa je bila izhodna slika kamere (ta nažalost ni posneta v videu):
Daveova žena Holly dela na Univerzi v Manchestru in sicer na oddelku paleontologije, kjer občasno posnamejo slike preko mikroskopa. Namesto pritrjevanja velikega fotoaparata na vrh mikroskopa, je Dave predlagal, naj uporabijo Raspberry Pi kamera modul ter ga pritrdijo na objektiv. Na koncu je spisal še spletno aplikacijo, ki podpira njegovo uporabo. To uporabniku omogoča upravljanje nastavitev kamere preko spletne strani ter zmožnost zajemanja fotografij s klikom na gumb. Dodal je tudi podporo arhiviranju zajetih slik v podatkovno bazo, skupaj z metapodatki in dodatnimi informacijami vnešenimi v spletni obrazec.
Dave je knjižnico še enkrat predstavil na Manchester Jamu, tokrat pa je prikazal enostavno uporabo spletne aplikacije napisane s Pythonom, ki se jo lahko uporabi v povezavi s kamero.
Dave je v videu povedal:
To je stvar, kjer je uporaba takšne knjižnice še posebej uporabna. Če bi to delali z raspistill in raspivid, kot ste želeli spremeniti svetlost vaše predogledne slike, bi morali ugasniti program ter ponovno napisati ukaz v ukazno vrstico, temu pa bi sledil še ponoven zagon programa. Tu enostavno povemo “nastavi lastnost”. To je tisto zaradi česar je uporaba knjižnice boljša in se bolje izkaže pri interaktivnih aplikacijah, kot je ta. Seveda ni nič narobe z raspistill in raspivid, kot takšnima, vendar nista ravno idealna za izdelavo takšne aplikacije. Če delate na interaktivni aplikaciji, potem si vsekakor želite knjižnice.
Več posnetkov iz Manchestrovega Jama si lahko ogledate tukaj.
picamera je na voljo v pypi vse od oktobra (v0.5) in jo lahko prenesete – pravkar je izšla različica v1.0, katero je Dave označil z dokončanimi lastnostmi. Mogoče jo je dobiti tudi iz arhivov Raspbiana, preko apt-get, vendar prej, kot vedno, poženite apt-get update :
1 |
apt-get install python-picamera |
ali
1 |
apt-get install python3-picamera |
glede na vaš okus.
Dave je omenil, da je to njegov najpriljubljenejši projekt, ki ga je objavil. Prav tako je bil navdušen nad odzivom, ki ga je dobil preko Pi skupnosti. Redno odgovarja na forumih ter pregleduje podrobna poročila o hroščih, ki jih prispevajo uporabniki. Nekaj pomoči je prejel od Jamesa Hughesa, avtorja raspistilla in Alexa Bradburyja, ki je knjižnico zapakiral za Raspbian. Izvorna koda picamere in picroscopy spletne aplikacije je na voljo na githubu. Zahvala gre seveda Daveu, ki je izdeloval to knjižnico.