使用网络摄像头感应照明条件并调整屏幕亮度

有没有办法让我的网络摄像头检测照明条件并相应调整屏幕亮度?

我之前的尝试有所改进:

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之间略微跳过。 无论如何,

这是如何使用它:

  1. sudo apt-get install python-opencv
  2. 将此脚本保存在某处,比如~/test.py
  3. 通过python test.py运行它

而不是平均亮度,我现在得到一个小tumbnail的最大亮度(这是为了避免死像素问题,并使其更快)。 至少在我的灯和相机的组合下,它运作得相当好!

试试看 (:

看一下RedShift项目,它根据您的地理位置改变屏幕温度,就像F.Lux以前一样。

http://jonls.dk/redshift/

有关安装和如何使用的说明在网站上有详细记录,根据您的硬件和显示器,您可以通过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 ,它完全符合您的要求。