使用网络摄像头感应照明条件并调整屏幕亮度
有没有办法让我的网络摄像头检测照明条件并相应调整屏幕亮度?
我之前的尝试有所改进:
import opencv import opencv.highgui import time import commands def get_image(): image = opencv.highgui.cvQueryFrame(camera) return opencv.adaptors.Ipl2PIL(image) camera = opencv.highgui.cvCreateCameraCapture(-1) while 1: image = get_image() image.thumbnail((32, 24, )) image = tuple(ord(i) for i in image.tostring()) x = int((int((max(image) / 256.0) * 10) + 1) ** 0.5 / 3 * 10) cmd = ("sudo su -c 'echo " + str(x) + " > /sys/devices/virtual/backlight/acpi_video0/brightness'") status, output = commands.getstatusoutput(cmd) assert status is 0
这种方法存在两个问题:显示器的亮度,至少在我的网络摄像头上,从不低于4,因为相机在黑暗中不能很好地工作,并且它可能会在4到5之间略微跳过。 无论如何,
这是如何使用它:
-
sudo apt-get install python-opencv
- 将此脚本保存在某处,比如
~/test.py
- 通过
python test.py
运行它
而不是平均亮度,我现在得到一个小tumbnail的最大亮度(这是为了避免死像素问题,并使其更快)。 至少在我的灯和相机的组合下,它运作得相当好!
试试看 (:
看一下RedShift项目,它根据您的地理位置改变屏幕温度,就像F.Lux以前一样。
有关安装和如何使用的说明在网站上有详细记录,根据您的硬件和显示器,您可以通过RedShift实现的良好效果感觉您的眼睛“焕然一新”。
要添加PPA,请在键盘上按Ctrl + Alt + T打开终端。 打开时,运行以下命令:
sudo add-apt-repository ppa:fantasyleague0629/wildguppy
然后通过以下方式安装WildGuppy:
sudo apt-get update; sudo apt-get install wildguppy
适用于Ubuntu 14.04,Ubuntu 13.10,Ubuntu 13.04,Ubuntu 12.10和Ubuntu 12.04。
让WildGuppy在启动时运行:
运行命令以编辑配置文件。
sudo gedit ~/.config/autostart/wildguppy-gtk.desktop
出现提示时输入密码。 请注意,键入时终端不会显示您的密码,只需记住并按Enter键即可。
文件打开后,粘贴到内容下方并保存。
[Desktop Entry] Type=Application Exec=wildguppy-gtk Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en_US]=WildGuppy Name=WildGuppy Comment[en_US]= Comment=
我还使用OpenCV为此制作了一个C工具。 您可以在https://launchpad.net/brightness找到它(您必须自己编译)。 我希望它会对你有所帮助。
您可以使用https://github.com/Wandersalamander/Dimmer ,它完全符合您的要求。