<< | #348 ; Ĉu la tria fojo jam diros la finan veron? |
>> |
Suomoj havas la proverbon "Kolmas kerta toden sanoo", rekte esperante tradukita: "tria fojo diras la veron". Ekzemple ofte estas nur la tria vario de iom granda komputila programo la unua iom bona vario. Kelkaj ekzemploj: Windows, QuickBASIC, TurboPascal, ... kaj certe la tria monda milito estos la plej forta. Mi ne scias tre bone la armilojn de tria monda milito, sed por la kvara MM oni povas uzi nur ŝtonoj kaj bastonoj ... ĉar aliaj ne plu ekzistas!
Por mi estas jam tria fojo por skribi pri simpla kontrola fotilo, do espereble la rezulto estos kiel eble plej vera kaj ĝusta.
Apude ni vidas la nunan varion de foto por nia distanca TTT-legila kontrola fotilo. Lumigado de mapo eble povus esti iom pli bona en pli malfruaj fotoj. La kialo por tio estis la dum tempo malfortiĝanta natura lumo.
La mondo ja estas jam dividita al okcidenta kaj orienta duono. Fakto de vivo. Tio ne estas mia kulpo. Oni akuzu Vladimir Putin de Rusujo kaj Sleepy-Joe de Usono pri tio. La Uesto kaj la Eosto ja neniam renkontos! En nunaj tempoj tio estas speciale facile por kredi.
Antaŭe mi skribis ke la posedanto de por la kontrola fotilo uzata foto /var/www/html/webcam/foto.jpg
pli bone estu la norma uzanto pi
sed tio ne gravas se oni ne volas prilabori la datumon. La posedanto de dosiero /var/www/html/webcam/
estas la speciala uzanto root
kaj tial oni devas uzi la vorton sudo
por foti.
En bona lumo facile eblas foti almenaŭ 12 fotoj per minuto, proksimume 5 sekundoj da tempo inter la fotoj. Miaopinie oni povas uzi prokraston 1 sekundo per la selektilo -t 1000
en bona lumo, sed en ioma malhelo oni eble devas doni pli da tempo por la fotilo por sin stabiligi. Kaj klare, se la ekspona tempo estas speciale longa, oni ne povas foti sinsekve tre rapide. Miamemore estas la plej longa ebla ekspona tempo por RPi-fotilo vario 2 proksimume 10 sekundoj.
Mi ne volas memorteni ĉiujn la fotojn en la memora karto de RPi. Se ni fotas ekzemple 10 fotoj dum minuto en 6 sekunda intertempo kaj la meza grando de unu sufiĉe modesta 640x480 foto estas proksimume 250 KB, bezonus ni proksimume 3,6 GB da memoro por la fotoj dum unu tago. Tio certe estus tro multe. Oni bezonas alian solvon se oni volas memorteni multe da fotoj de aŭtomata kontrola fotilo. Mi ne ilin memortenos.
Mi skribis novan "script" por foti en serio. Oni povas stopi la "script" simple, nur presu ion klavon de klavaro. Ĝi atendas por 3 sekundoj la preson de klavo por ĉio rondo post la fotado. Oni ne bezonas plu uzi la klavan kombinaĵon Ctrl+C
Jen la "script" en dosiero /home/pi/
, nomita while.sh
:
#!/bin/bash while true; do date sudo raspistill -w 640 -h 480 -t 1000 -a 1036 -a "Simeoni @ %X %d.%m.%Y" -o /var/www/html/webcam/foto.jpg # sudo chown pi: /var/www/html/webcam/foto.jpg # Ĉi tion vicon oni apenaŭ bezonas! if read -r -N 1 -t 3; then break fi done
Oni preparas la datumon por uzo en komanda fenestro per la ordinara komando chmod +x while.sh
kaj sekve eblas starti la fotadon en serio per komando ./while.sh
Kaj jen la nuna vario de PHP -kodo fotu.php
por la HTML-radiko /var/www/html/
de TTT-servilo Apache:
<?php echo "<title> Montru la foton </title>"; ?> <?php echo "<meta http-equiv='refresh' content='5'>"; ?> <?php echo "<h1 align='center'>" . "Simeoni @ " . date('H:i:s ; d.m.Y') . "</h1>"; ?> <?php echo "<p align='center'> <img src='webcam/foto.jpg'> </p>"; ?>
La intencita intertempo do nun estas 5 sekundoj inter la unuopaj fotoj, kvankam mi ne povas tion precize kalkuli.
Se oni volas ekzemple nur 5 fotoj dum minuto, oni aliigu en la "script" la vicon: " if read -r -N 1 -t 3; then
" al iom alia formo: " if read -r -N 1 -t 5; then
" kaj pli bone tute forigu la fotilan selektilon " -t 1000
" por foti en pli malforta lumo, tiel ke la fotilo povas uzi tempon por fotado kiom ĝi bezonas, jen iel jen tiel. En la PHP-datumo oni aliigu la parton " content='5'
" en la HTML-elemento <meta ... >
al la iom alia " content='12'
" por pli longa intertempo 12 sekundoj. Tamen povas iom okazi ke la fotita foto kaj la paĝo de TTT-legilo ne estas ĉiam tute sinkronaj unu kun la alia. Estas ja du apartaj procezoj kioj estas nur proksimume same rapidaj.
Eblas uzi la selektilon -ifx
kun kelkaj specialaj vortoj por la programo raspistill
por produkti interesaj kaj amuzaj rezultoj rekte per la fotila programo mem. Por pli kompleksaj rezultoj oni povus uzi ekzemple OpenCV en Python -programo.
Nu, certe la kontrola fotilo ne estas la plej bona aparato por tiaj ludoj, artverkoj kaj ŝercoj, sed jen kelkaj ekzemploj pri uzo de tia selektilo kun la sama testa situacio kion ni vidis je komenco:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
La supraj fotoj estas iom malgradigitaj el la origina 640x480 sed konservas la originan rilaton 4:3 inter la larĝo kaj la alto. Alia norma alternativo por RPi-fotiloj varioj 1 kaj 2 estus 16:9, kiel ekzemple 1920x1080, sed tiam la fotilo eble ne fotas per la plej granda ebla fota angulo.
Eĉ belarto jam estas aŭtomatigita! Oni povas simpligi la foton kaj obtuzi malgrandaj kaj malpli gravaj detaloj. Ekzemple por la selektilo -ifx oilpaint
estas la limo inter okcidenta kaj orienta mondo apenaŭ videbla. Kelkaj selektiloj plifortigas detalojn (ekzemple la selektilo -ifx sketch
) kaj kelkaj aliaj ilin obtuzas.
La origina grando de iom pakita JPG-datumo de foto de 640*480 da rastrunuoj por la selektilo -ifx pastel
estis nur 218 KB, sed la datumo de foto de sama nombro da rastrunuoj kun selektilo -ifx sketch
estis eĉ 356 KB. La origina norma 640x480 foto estis 273 KB. Do eblas signife malgrandigi la JPG-datumon per konvena selektilo, se oni rajtas perdi detaloj. Kaj tioj selektiloj kioj plifortigas detalojn en la foto, ili produktas pli grandaj, malpli facile pakeblaj datumoj.
Apude estas iom malgrandigita norma foto de mia proksima roksala lampo. Sube estas rezultoj de sama objekto fotitaj per selektiloj -ifx solarise
kaj -ifx posterise
kaj tre artistaj bildoj?
La selektilo -ifx solarise
aliigas la plej brilajn kolorojn de foto tiel ke brila lampo aperas preskaŭ nigra, kvankam samtempe la pli malhelaj koloroj restas la originaj.
La plej perobjektivan bildon pri la iom malfacila forte kontraŭluma fota situacio tamen produktas la selektilo -ifx sketch
kio estas prezentita sube dekstre. Eĉ la objektoj en ombro estas iom klare videblaj.
Nu, klare ke la grando de foto - kvanto da rastrunuoj en la foto - iom efikas al la rezulto. La selektiloj ja influas al grupoj da proksimaj rastrunuoj. Por malgrandaj fotoj estas la influo de tioj selektiloj relative forta kaj aliigo de fota grando iom aliigas la situacion.
![]() |
![]() |
La supoza grando de foto ( sen la ĉi tie uzataj selektiloj -w 640 -h 480
en kio ajn ordo ) por RPi-fotilo vario 2 estus la plej granda ebla 3280x2464 da rastrunuoj. Se ni fotus per tio kolosa grando, uzante ion tre "artistan" selektilon ( ekzemple -ifx oilpaint
) kaj nur poste malgrandigus tion rezulton ekzemple al grando 320x240, povus la fina rezulto esti iom alia. Miadivene estus la impreso de speciala "artista" selektilo tiam multe pli malforta en la fina multe malgrandigita foto.
Nu, sekve mi devas iom diveni kiel la fotilo vere laboras. Mi do povas iom erari en detaloj, sed ni pensu pli pri principoj ol precizaj nombroj. Ni pensu pri entjeroj. Ni rigardu la tutan grandan bildon. Ni estu liberale larĝanimaj ...
Kiam ni fotas rekte en la - miaopinie pli realisma - grando 640x480, enhavas ĉiu unuopa rastrunuo de foto multaj rastrunuoj de sensilo. Oni uzas la tiel nomatan "4 x 4 binning" ( aŭ ĉu eble "4 x 4 scaling"? ).
Kiam la rilato inter la mezuroj larĝeco:alteco restas la sama 4:3, mi opinias ke oni selektas unu rastrunuon de malgranda foto el proksimume 5 * 5 = 25
da rastrunuoj de sensilo, ĉar egalas proksimume 640 = 3280 / 5
kaj same proksimume egalas 480 = 2464 / 5
. Do miadivene oni ne uzas ĉiuj rastrunuoj de sensilo por foti, sed mi esperas ke la fota angulo restas proksimume la sama.
Do en larĝeco la entute 3280 rastrunuoj de sensilo estas reprezentitaj proksimume per la nur 640 rastrunuoj en la foto. En alteco la entute 2464 rastrunuoj de sensilo estas reprezentitaj proksimume per la nur 480 rastrunuoj en la foto. Ĉiu rastrunuo de foto do tiam miaopinie kolektas la lumon el 4 * 4 = 16
rastrunuoj de fotila sensilo, sed kelkaj rastrunuoj de sensilo estas ignoritaj.
Miadivene la "artista" selektilo estas aplikita nur post la fotado per la programo raspistill
kaj mi asertas ke la fina rezulto estas iom alia se la grando de foto estas 3280 * 2464
da rastrunuoj aŭ ĉu la foto estas nur 640 * 480
. Mi nome asertas ke la "artista" selektilo laboras per la sama konstanta nombro da rastrunuoj en ambaŭ kazoj kaj ekzemple areo 8 * 8
da rastrunuoj en la pli malgranda foto reprezentas en la multe pli granda foto proksimume areon de 40 * 40
da rastrunuoj.
Kelkaj el tioj selektilaj alternativoj povus esti utilaj por komputila vidkapablo (angla "Computer Vision")? Kelkaj el tioj nome povas trovi bordojn de objektoj en foto kaj fari ilin pli bone videblaj tiel ke estos la objektoj pli facile identigeblaj.
La Ambasadoro en Finnlando de sendependa nacio Mueleja Insulo |