Linuxfree debian

Cameră web ca senzor de lumină


Bună ziua, astăzi vom vorbi despre cum să folosim camera noastră web la maxim.
Camera noastră este folosită în principal pentru Skyp'a și alte divertisment, acum vom încerca să o folosim pentru a indica iluminarea camerei.
Pentru toți, nu este un secret că toată lumea încearcă să-și protejeze ochii și folosește ochelari cu un strat de praf și o facem doar - vom scrie un mic program și va arăta la rândul său, în ce cameră suntem sau nu iluminați.
Când camera este întunecată, vom stinge lumina de fundal, iar dacă lumina și lumina soarelui se suprapun cu iluminarea din spate, activați lumina de fundal.

creați un fișier gedit .webcamlight.sh


#! / bin / bash
x = 320 # lățimea fotografiei
y = 240 # fotografie înălțime
n = 1000 # prag de verificare a fotografiilor (de la 0 la x * y) - fiecare pixel N va fi luat pentru numărare
max = 40 # culoarea maximă (de la 0 la 255)
somn = 60 # așteptați, înainte ca operația să fie repetată
maxbright = 100 # luminozitate maximă
minbright = 20 de luminozitate minimă
în timp ce [1]; face # buclă infinită
ffmpeg -f video4linux2 -s $ x $ -i / dev / video0 -f imagine2 /tmp/snapshot.jpg 2> / dev / null # face ecranul
convertește /tmp/snapshot.jpg -colorspace gri /tmp/snapshot.jpg # decolorizează-l
suma = 0
număr = 0
permiteți "s = x * y" # pixeli totali
color = (`convert /tmp/snapshot.jpg[$x$+0+0] -dept 8 txt: | tail -n +2 | sed -n / ^. * # 92; (# [^] * # 92;). * $ / # 92; 1 / p '| cut -c2-3`); # matrice de culori pixel, care a luat doar R din RGB, aproximativ vorbind. Culoare apoi gri
pentru i în `seq 0 $ n $ s`; # pentru fiecare Nth
face
# traduceți culoarea de la hexazecimal la zecimal
color1 = `echo $ | tăiat -c1-1 "
color2 = `echo $ | cut -c2-2`
cazul "$ color1" în
"A") color1 = 10;
"B") color1 = 11;
"C") color1 = 12 ;;
"D") color1 = 13 ;;
"E") color1 = 14 ;;
"F") color1 = 15;
ESAC
cazul "$ color2" în
"A") color2 = 10;
"B") color2 = 11;
"C") color2 = 12 ;;
"D") color2 = 13 ;;
"E") color2 = 14 ;;
"F") color2 = 15;
ESAC
permiteți "rgbcolor = color1 * 16 + color2"
lasă suma "sum = sum + rgbcolor" # suma "culorilor". Apoi împărțiți numărul și obțineți culoarea medie
permiteți "count = count + 1" # să ia în considerare numărul


chmod + x .webcamlight.sh permite executarea scriptului.

La pornire, adăugați sh -c / home /[USER]/.webcamlight.sh

verificați consola sau doar reporniți.

Articole similare