जवाबों:
मैंने अपने पिछले प्रयास में सुधार किया है :
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
इस दृष्टिकोण के साथ दो समस्याएं: डिस्प्ले की चमक, कम से कम मेरे वेबकैम के साथ, कभी भी चार से कम नहीं होती है, क्योंकि कैमरा अंधेरे में अच्छी तरह से काम नहीं करता है, और यह चार और पांच के बीच थोड़ा सा छोड़ सकता है। वैसे भी,
यह इसका उपयोग करने का तरीका है:
sudo apt-get install python-opencv
~/test.py
python test.py
औसत चमक के बजाय, मुझे अब एक छोटी सी तुंबनी की अधिकतम चमक मिल रही है (यह मृत पिक्सेल समस्याओं से बचने और इसे तेज़ बनाने के लिए है)। और कम से कम रोशनी और कैमरे के संयोजन के साथ, यह अच्छी तरह से काम करता है!
कोशिश तो करो (:
highgui
से stackoverflow.com/questions/30684661/... । क्या कोई और तरीका है?
RedShift प्रोजेक्ट पर एक नज़र डालें, जो आपके भौगोलिक स्थान के आधार पर स्क्रीन तापमान को बदलता है जैसा कि F.Lux पूर्व में कर रहा था।
स्थापित करने और उपयोग करने के निर्देशों को वेबसाइट में अच्छी तरह से प्रलेखित किया गया है और, आपके हार्डवेयर और मॉनिटर के आधार पर आप अपनी आँखों को "ताज़ा" जैसे अच्छे प्रभाव से महसूस कर सकते हैं जो RedShift द्वारा प्राप्त किया गया है।
पीपीए, प्रेस को जोड़ने के लिए 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=
/opt/wildguppy/wildguppy.py
। तो आप किसी भी डिस्ट्रो में इस पैकेज का उपयोग कर सकते हैं! चीयर्स!
मैंने उस के लिए एक C टूल भी बनाया, OpenCV का उपयोग करते हुए। आप इसे https://launchpad.net/brightness पर पा सकते हैं (आपको इसे स्वयं ही संकलित करना होगा)। मुझे आशा है कि यह आपकी मदद करेगा।
आप https://github.com/Wandersalamander/Dimmer का उपयोग कर सकते हैं, जो आपके द्वारा मांगे जाने पर वास्तव में करता है।
यह मेरे लिए काम करता है:
#!/usr/bin/env python3
import subprocess, time
# webcam brightness if webcam doesn’t get any light
blackpoint = 0.05
# webcam brightness if webcam is fully exposed (e.g. sun at noon)
whitepoint = 0.92549
# Path to program that sets screen brightness. Takes float between 0 and 1 as
# a parameter. Should be whitelisted for sudo if this script is not run as
# root. Sample script:
#
# #!/bin/sh
# echo "($1 * 4882) / 1" | bc > /sys/class/backlight/intel_backlight/brightness
brightness_setter = "/home/bronger/bin/set_brightness.sh"
# it doen’t get any darker
minimal_brightness = 0.1
# in seconds
sleeping_time = 20
def get_brightness():
"""Returns webcam brightness as a float between 0 and 1 (boundaries
included)."""
fswebcam = subprocess.Popen(["fswebcam", "-q", "--no-banner", "--png", "0", "-"], stdout=subprocess.PIPE)
convert = subprocess.run(["convert", "png:-", "-colorspace", "gray", "-scale", "10%x10%",
"-format", "%[fx:image.maxima]", "info:"],
check=True, stdin=fswebcam.stdout, capture_output=True, text=True)
assert fswebcam.wait() == 0
brightness = float(convert.stdout)
brightness = (brightness - blackpoint) / (whitepoint - blackpoint)
brightness = max(0.0, min(1.0, brightness))
return brightness
old_brightness = None
while True:
brightness = get_brightness() ** 2
brightness = max(minimal_brightness, brightness)
if old_brightness is None or abs(brightness - old_brightness) > 0.2:
subprocess.run(["sudo", brightness_setter, str(brightness)], check=True)
old_brightness = brightness
time.sleep(sleeping_time)
मैंने एक C ऐप विकसित किया है जो ऐसा करता है। देखHttps://github.com/goglecm/AutoBrightnessCam ।
यह fswebcam
चित्रों को लेने के लिए उपयोग किया जाता है, systemd
स्वचालित रूप से शुरू करने के लिए कॉन्फ़िगर किया जा सकता है और पता लगा सकता है कि क्या लैपटॉप डिस्चार्ज हो रहा है (तब यह किक करता है)।