有没有办法让我的网络摄像头感知光照条件并相应地调整屏幕亮度?
答案1
我已经改进了我的先前的尝试(Python):
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
我现在获得的不是平均亮度,而是小缩略图的最大亮度(这是为了避免坏点问题并使其更快)。至少在我的灯光和相机组合下,效果相当好!
试一试 (:
答案2
看看 RedShift 项目,它会根据您的地理位置改变屏幕温度,就像 F.Lux 以前做的那样。
网站上有详细的安装和使用说明,并且根据您的硬件和显示器,您可以感觉到您的眼睛因 RedShift 实现的良好效果而“神清气爽”。
答案3
要添加 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
出现提示时输入密码。请注意,终端不会在输入时显示您的密码,只需输入并按回车键即可。
文件打开后,粘贴以下内容并保存。
[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=
答案4
您可以使用 https://github.com/Wandersalamander/Dimmer 这正是您所要求的。