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

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

有没有办法让我的网络摄像头感知光照条件并相应地调整屏幕亮度?

答案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 之间可能会略有不同。无论如何,

使用方法如下:

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

我现在获得的不是平均亮度,而是小缩略图的最大亮度(这是为了避免坏点问题并使其更快)。至少在我的灯光和相机组合下,效果相当好!

试一试 (:

答案2

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

http://jonls.dk/redshift/

网站上有详细的安装和使用说明,并且根据您的硬件和显示器,您可以感觉到您的眼睛因 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 这正是您所要求的。

相关内容