当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

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

最佳解决方案

我对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之间跳一点。无论如何,

这是使用方法:

  1. sudo apt-get install python-opencv

  2. 将此脚本保存在某处,例如~/test.py

  3. 通过python test.py运行

我现在得到的不是平均亮度,而是小钉子的最大亮度(这是为了避免像素坏的问题并使之更快)。至少结合我的灯光和摄像头,它可以很好地工作!

试试看 (:

次佳解决方案

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

http://jonls.dk/redshift/

网站上详细记录了安装和使用说明,并且取决于您的硬件和显示器,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=

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7276.html,未经允许,请勿转载。