在阅读this之后,我尝试了accepted answer,它使用cv从网络摄像头获取图像并计算将应用于屏幕的亮度。
但是,当我尝试它时,这些库似乎无法正常工作。显然,自从发布答案的时间(2011年)以来,对cv和highgui进行了更改,例如,不再引用。我试图获得等价并以某种方式制定解决方法,但它似乎记录不好或我的问题太具体了。已经在这里搜索过它没有运气。 这是我稍微修改过的脚本版本:
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
(必须将opencv更改为cv,因为即使安装了python-opencv
,也无法找到opencv)。
有光吗?