问题描述
有没有办法让我的网络摄像头感知照明条件并相应地调整屏幕亮度?
最佳解决方案
我对previous attempt进行了改进:
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
运行
我现在得到的不是平均亮度,而是小钉子的最大亮度(这是为了避免像素坏的问题并使之更快)。至少结合我的灯光和摄像头,它可以很好地工作!
试试看 (:
次佳解决方案
看一下RedShift项目,该项目会像F.Lux以前那样根据您的地理位置更改屏幕温度。
网站上详细记录了安装和使用说明,并且取决于您的硬件和显示器,RedShift可以提供不错的效果,使您感觉像”refreshed”。
第三种解决方案
要添加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=