Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/03/2011, à 00:03

TheCaméléon

Utiliser la Webcam comme capteur de luminosité !

Bonsoir tout le monde !

Je viens partager mon tout dernier programme (en C). Sa mission est de régler la luminosité de l'écran de votre portable, grâce à votre webcam ! Le programme s'inspire de la discussion ci sur le forum ubuntu anglophone.

Le programme, à son stade actuel met à jour la luminosité toutes les 5minutes, et à l'ouverture de l'écran du portable (suppose un déplacement donc un changement de luminosité).

Prérequis

Installation

gcc -lhighgui -Wall brightness.c -o test && sudo ./test install

(compile le fichier .c et change les droits du fichier permettant le réglage de la luminosité)

Utilisation

./test

Pour arrêter : Ctrl + C

Code
lien

Licence GPL. Toutes les contributions sont les bienvenues smile
Le programme est encore assez basique, n'hésitez pas à l'améliorer wink

Dernière modification par TheCaméléon (Le 15/03/2011, à 00:04)

Hors ligne

#2 Le 10/08/2011, à 23:32

LynchME

Re : Utiliser la Webcam comme capteur de luminosité !

Bonsoir !
J'ai longtemps cherché un programme permettant de faire cela, surtout avec cette histoire d'Unity qui a fait disparaître l'applet luminosité...
C'est vraiment pratique pour pas se péter les yeux sur l'écran la nuit, ou aussi pouvoir voir la journée (pour ceux qui utilisent aussi leur ordi la journée ^^)
A l'époque ton code n'était pas encore en ligne, du coup j'ai fait le mien de mon coté. Il est en Python et n'utilise pas les mêmes librairies.
Cependant je pense que ça peut être sympa de le poster en dessous du tiens, si quelqu'un cherche il aura le choix du langage.
Mon code est bien-sûr moins complet et propre, mais aussi moins complexe à adapter (ça va souvent de paire ^^).


Description du fonctionnement du code
Le programme regarde l'heure qu'il est et vérifie qu'il ne s'est pas passé plus de 5 minutes depuis la dernière vérification. Si plus de 5 minutes se sont écoulées, il prend une photo avec la webcam. Ensuite il fait une somme des pixels pour avoir la couleur moyenne (en niveau de gris) de la photo. On estime ici qu'une photo plutôt foncée est représentative d'un environnement sombre et inversement. On applique ensuite un taux de luminosité (entre 0 et 100) calculé à partir de la moyenne. Si le programme est exécuté depuis un terminal, il affiche l'heure à laquelle il a changé la luminosité et la valeur qu'il lui a donné.

Prérequis

  • streamer

  • imagemagick

  • xbacklight

(pour les installer : sudo apt-get install <paquet>)

Etape 1
copier le code suivant dans un fichier python (par exemple backlight.py) en remplaçant "**USERNAME**" par votre nom de session :

#!/usr/bin/python3.2
# -*-coding:Utf-8 -* 
import os,sys,time 
m=0
new=0
while 1:
    m=int(time.strftime('%M',time.localtime()))
    if m%5==0: # 5 indique que la valeur doit être remise à jour toutes les 5 minutes
        if new==0:
            os.system("streamer -f jpeg -o /home/**USERNAME**/image.jpeg")
            os.system("convert image.jpeg -colorspace Gray -scale 1x1\! -format '%[fx:int(255*r)]' info:-")
            cmd = os.popen("convert image.jpeg -colorspace Gray -scale 1x1\! -format '%[fx:int(255*r)]' info:-")
            val=int(cmd.read())
            val=int(0.77*val-15.38) # 100/(150-20)*val-100/(150-20)*20 ce calcul permet d'avoir une valeur adaptée à la luminosité
            if val <0:
                val=0
            elif val >100:
                val=100
            os.system("xbacklight -set %i" %(val))

            os.system("rm image.jpeg")
            print time.strftime('%H:%M',time.localtime())
            print "%i\n" %(val)
            new=1
    else:
        new=0
    time.sleep(10)

Etape 2
Placez votre fichier dans votre dossier d'utilisateur (/home/**USERNAME**/) par exemple (vous pouvez le renommer avec un point devant pour qu'il soit caché [ex : .backlight.py]). Le rendre exécutable en faisant "clic droit/Propriétés/Permissions/ et cocher Autoriser l'exécution du fichier comme un programme".

Etape 3
Pour le lancer, utilisez la commande "python chemindevotrefichier.py" depuis un terminal ou une tache automatisée.



Si votre webcam est activée et que xbacklight fonctionne sur votre ordinateur, le programme devrait fonctionner correctement.

En tout cas merci à toi TheCaméléon pour ton post et ton code (très bon perso site d'ailleurs), j'aurais bien aimé tomber dessus à l'époque où j'ai dû bricoler ça moi-même ^^

Hors ligne

#3 Le 11/08/2011, à 00:19

geenux

Re : Utiliser la Webcam comme capteur de luminosité !

Intéressant comme concept, je n'y avais jamais pensé !
Je testerai ça dès que j'ai le temps, ça pourrait s'avérer utile, je passe mon temps à jouer avec les boutons de réglage de la luminosité !

Hors ligne

#4 Le 11/08/2011, à 01:09

TheCaméléon

Re : Utiliser la Webcam comme capteur de luminosité !

Merci pour votre intérêt smile
Vous pouvez accéder à la version la plus récente du code en faisant :

bzr clone http://bzr.pictuga.com/brightness/

(il n'y a pas eu bcp de changements récemment)

Hors ligne