阅读完这篇文章后,我尝试了接受的答案,它给出了一个 python 脚本,使用 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 也找不到)。有光吗?