Jste linuxoví kreativci, rádi fotografujete a vlastníte navíc fotoaparát Canon? Pak byste měli vyzkoušet tento šikovný prográmek.
18.4.2007 06:00 | František Bublík | přečteno 12139×
V dobách, kdy jsem si ještě nepřipravoval nákup hardwaru zjišťováním kompatibility s Linuxem, jsem ve slevě zakoupil fotoaparát Canon Powershot A 310. Krátce po té jsem se začal zajímat o možnost propojení fotoaparátu s linuxovým počítačem. Protože tento přístroj nepodporuje mass-storage, hledal jsem software, který by uměl s fotoaparátem komunikovat. Jen díky mé tehdejší neznalosti a vyhledávání pomocí klíčového slova "Canon" se mi na obrazovce objevil balíček capture_x_x.rpm. Tenkrát jsem jej nainstaloval, spustil a hned z počátku nepochopil, k čemu to může být dobré, takže jsem jej dále nepoužíval. Teprve zkoumání, zda by bylo možné použít na Linuxu můj fotoaparát jako webovou kameru, mne donutilo se k programu vrátit a objevit jeho dříve netušené možnosti.
Takže program ovládá některé modely fotoaparátů značky Canon. Umí manipulovat s různými nastaveními, jako je použití blesku, nastavení citlivosti, jasu, rychlosti uzávěrky, zoom atd. Umí fotit a ukládat snímky sekvenčně číslované na disk počítače. Aby bylo možno fotoaparát správně nasměrovat, disponuje capture náhledovým oknem velikosti 320x240, ze kterého lze v aktuální verzi programu zachytávat obrázky ve formátu *.jpg a z nich pak vytvořit pomocí mencoderu videosoubor. Chcete-li zjistit zda je váš typ fotoaparátu podporován, navštivte oficiální stránku projektu, kde naleznete seznam. Také můžete navštívit přímo stránku autora, jímž je český programátor pan Petr Daněček. Nejsem zrovna nějakým nadšeným obdivovatelem květin, ale video rozvíjejícího se květu na autorově stránce mne docela uchvátilo. Možná teprve zhlédnutí takového videa člověku ukáže, co je všechno možné pomocí programu capture vytvořit. Lze jej použít všude tam, kde je potřeba zachytit pomalý, okem sotva postřehnutelný pohyb např: změny v přírodě, růst rostlin, vysychání vody a podobně. Další možností je třeba použití fotoaparátu jako webové kamery. Nyní se pojďme na program podívat trochu podrobněji:
V Mandrivě, kde jsem program zkoušel, je program připraven jako distribuční balíček. Pomocí "urpmi capture" nainstalujete distribučni verzi. Chcete-li verzi nejnovější, musíte navštívit oficiální stránku projektu. Osobně jsem testoval verzi 1.0.3, ale v době psaní tohoto článku je již k mání verze 1.0.4. Budete-li jí chtít zkompilovat, je potřeba mít nainstalovanou knihovnu libptp a gtk-devel (v Mandrivě 2007 je to libgtk+2.0_0-devel). Je to ostatně popsáno v README. Možná narazíte jako já při kompilaci na chybové hlášení s řetězcem "-pedantic-errors" a kompilace se nezdaří. Na radu autora jsem ze souboru "Makefile" u položky "CFLAGS=" vymazal zmíněný řetězec a pak se program bez potíží přeložil.
capture> help Interactive commands: aperture Set the aperture capture Capture image and save it to the given file name photograph Capture image but do not download it detach Quit the client but let the server running debug Toggle debug mode ecomp Exposure compensation effect Photo effect flash Set flash mode focus Focus lock/unlock focuspoint Sets the focusing point to center/auto help More help on a commmand: "help COMMAND" iso ISO speed macro Set the macro mode metering Light metering mode quit Quit both the server and client shutter Set the shutter speed start Initialize the camera status Get the server's status test Debugging tests tv/av TV/Av Setting - sets aperture/shutter priority viewfinder Turn the viewfinder window on/ff vfsave Save viewfinder images into files with a given prefix. vfalign Align the viewfinder window with the specified image. vftrans Set the viewfinder transparency in 'transparent' mode. borders Draw borders around the viewfinder, in % of the height/width. white White balance zoom Set zoom: 0..6 optical zoom, 7..10 digital zoom qual Set image quality size Set image size capture>
Detaily k interaktivním příkazům si nyní můžeme nechat vypsat použitím "help příkaz". Tak například možnosti příkazu "flash" jsou:
capture> help flash off auto on auto red eye on red eye capture>Pokud příkaz žádné volby nemá, vypíše např.
help photograph
základní seznam příkazů.
Inicializaci fotoaparátu provedeme příkazem "start" a nyní již můžeme zadávat jednotlivé příkazy. Úplně nejjednodušší možnost je rovnou fotit: capture fotka.jpg.
$capture> start $capture> capture fotka.jpgVe vámi preferovaném obrázkovém prohlížeči si prohlédneme výsledek, který se po takto zadaném příkazu vytvoří jako ./fotka.jpg. Pro ty z vás, kteří se fotografováním zabývají trochu více, než jen používáním automatiky na fotoaparátu, jsou zajímavé nastavovací volby programu. Je samozřejmé, že u levnějších modelů nebudou všechny volby k dispozici a je potřeba u každého typu aparátu vyzkoušet, co funguje a co ne. Například mnou používaný Powershot A 310 si nerozuměl s funkcí "zoom" a "photograph". Při jejichtestování vždy došlo k přerušení komunikace mezi programem a aparátem a obojí bylo nutno vypnout a spustit znovu.
Bez problémů jsem mohl používat nastavení blesku (flash), nastavení rychlosti uzávěrky (shutter), nastavení citlivosti (iso), a nastavení kvality snímku (qual). V tcl skriptu, který jsem použil pro online přenos z LPT5, jsem také používal ověření běhu programu příkazem "status". Popis skriptu je spíše na samostatný článek, proto jej zde nebudu uvádět.
Uvedu zde ale malý příklad (díky panu Daněčkovi), který demonstruje možnosti použití programu pro opakované automatizované focení.
#!/bin/sh > capture 'start' > capture 'flash off' > capture 'zoom 1' 'metering spot' 'focuspoint center' > for (( I=1; I<5; I++ )); do > echo $I; > capture "test-$I.jpg"; > sleep 1; > done > capture 'quit'Jak je vidět, všechny interaktivní příkazy je možné použít jako parametr na příkazové řádce buď jednotlivě, nebo i několik za sebou, oddělené mezerou.
Program obsahuje také šikovnou vychytávku "vievfinder", což je okénko s malým náhledem obrázků přímo přenášených fotoaparátem. Jeho hlavním účelem je asi možnost nasměrovat fotoaparát na objekt, který chceme fotit. Použitím příkazu "viefinder on" se nám otevře malé okénko s přenášeným obrazem jako z webkamery.
V posledních verzích programu přibyla nová možnost, a to příkaz "vfsave", který zachytává sled obrázků v jpeg do námi určeného adresáře. Nejlépe příklad:
$capture capture> start capture> viewfinder on capture> vfsave /home/user/picture/zaznam_ capture> vfsave offNyní nám v adresáři ~/picture/ vzniklo množství malých obrázků s názvem zaznam_xxxxxx.jpg, kde za "x" si domysleme číslování od 000000. Po ukončení záznamu příkazem "vfsave off" nebo "vievfinder off" si můžeme záznam prohlédnout například za použití mplayeru. Také můžeme vytvořit film ze sledu obrázků programem mencoder.
$ mplayer "mf://*.jpg" -mf fps=10
$ mencoder "mf://*.jpg" -mf fps=10 -ovc copy -o output.avi
Použitý parametr "fps=10" určí rychlost přehrávaného (vytvářeného) videa a lze s ním libovolně experimentovat.