Еще давно у меня возникла идея написать программу, которая снимала бы изображение с вебкамеры, рассчитывала среднюю освещенность картинки в течении некоторого промежутка времени, и в зависимости от уровня освещенности выполняла различные действия(меняла тему оформления, подсветку экрана и т.д.). Вот и дошли у меня до этого руки и я написал программку. Называется dlight, распространяется под GPLv3. В зависимостях имеет libcv-dev и libhighgui-dev. Чтобы скомпилить и установить говорим «make && sudo make install». Затем запускаем в режиме дебага и смотрим текущий уровень освещенности:
drull@ubuntu:~/src/dlight$ dlight --debug
Webcam connected!
Window created.
Using config: /home/drull/.config/dlight/dlight.conf ...Success
average_time = 20
Period was set to 20 seconds
0:30:gtk-theme-switch2 /usr/share/themes/Ambiance/
41:90:gtk-theme-switch2 /usr/share/themes/Crux/
select timeout
Average:33,000000, Time:1, Current brightness:33
Average:33,000000, Time:2, Current brightness:33
Average:33,333333, Time:3, Current brightness:34
Average:34,250000, Time:4, Current brightness:38
Average:34,200000, Time:5, Current brightness:34
Average:33,000000, Time:6, Current brightness:26
Average:31,857143, Time:7, Current brightness:25
Average:32,125000, Time:8, Current brightness:39
Average:34,222222, Time:9, Current brightness:49
Average:34,000000, Time:10, Current brightness:33
Average:34,000000, Time:11, Current brightness:34
Average:34,000000, Time:12, Current brightness:34
Average:33,923077, Time:13, Current brightness:34
Average:33,928571, Time:14, Current brightness:34
Average:33,933333, Time:15, Current brightness:34
Average:33,937500, Time:16, Current brightness:34
Average:33,941176, Time:17, Current brightness:34
Average:33,722222, Time:18, Current brightness:30
Average:33,473684, Time:19, Current brightness:29
Average:33,300000, Time:20, Current brightness:30
Average: 33,300000, command sh -c 'gtk-theme-switch2 /usr/share/themes/Crux/' executed
Average:31,000000, Time:1, Current brightness:31
Average:31,500000, Time:2, Current brightness:32
Average:31,666667, Time:3, Current brightness:32
Average:31,750000, Time:4, Current brightness:32
Average:31,800000, Time:5, Current brightness:32
Average:32,000000, Time:6, Current brightness:33
^C
Открываем конфиг (~/.config/dlight/dlight.conf) и записываем в него строки вида:
<min>:<max>:<command>
Скачать можно с svn'a на сорсфорже:
svn co https://dlight.svn.sourceforge.net/svnroot/dlight dlight