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 | read 12236×
DISCUSSION
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.
Capture
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:
Instalace
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.
Používáme capture
Před spuštěním programu nejprve připojíme (podporovaný) fotoaparát Canon s nabitými bateriemi, nebo se síťovým adaptérem a zapneme jej. V modernějších distribucích zrušíme všechny připojovací dialogy a v konsoli spustíme příkaz capture. Jako první příkaz vám doporučím zkusit "help", který vypíše všechny další interaktivní příkazy.
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ů.
Fotíme
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.jpg
Ve 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.
Filmujeme
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 off
Nyní 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.
Závěrem
Program byl vytvořen pro specifickou činnost, a sice pro mnohonásobné, opakované, automatické focení. Možnost využití ve skriptech z něj dělá velmi šikovný kousek softwaru. Výsledky takového fotografování najdete na druhém, níže uvedeném odkazu. Výsledná videa doporučuji zhlédnout. První odkaz vede na oficiální stránku projektu, kde naleznete seznam podporovaných fotoaparátů a další informace. Vlastníte-li fotoaparát, který není na seznamu ale přesto s programem capture funguje, neváhejte o tom zpravit autora.