Aide sur python 3 / Picamera

Bonjour tous le mode, en espèrant avoir des réponses…
J’ai un problème que je comprend pas sur mon programme il s’agit d’un simple photomaton sur écran 3.5" tactile en gpio
voici le code : import cupsfrom tkinter import * from PIL import Image, ImageTkfrom picame - Pastebin.com

Pour vous expliquer, j’ai fait un menu avec 2 possibilté :
-1er bouton Configuration de l’appareil photo (picamera module v2) contenants des scales iso,contrast,saturation et la lumière. Il y a également 2 boutons : le 1er pour validé les valeurs donc mettre à jour celles-ci. le 2nd pour tester la config.

-2nd bouton : Lancement de l’appli. il s’agit d’une autre fenêtre tkinter image bouton qui s’affiche pour prendre la photo avec un décompte.

Voici sur quoi je bloque. Je ne sait pas comment faire pour mettre à jour les valeurs puis dire au moment de la photo que les configs de l’appareil sont égales à celles des scales qui ce situent dans une autre fonction def.

Voici un projet qui fonctionne presque sur le meme principes mais que j’arrive pas a terminé au niveau du panel config… - YouTube

Salut ,

je sait pas se qu’est un scale mais tu enregistres ces valeur dans des variables et tu prends les meme dans ton autre fonction

c’est une valeur alphébétique ?
peut tu me mettre un exemple ou un lien qui explique, car dans l’état je peux pas tester le code j’ai pas la caméra

Salut, Les scales sont des curceurs tkinter qui vont d’une valeur A à une valeur Z par exemple. J’ai essayer plein de choses notamant de mettre « global scaleISO, scaleContrast, scaleBrighness, scaleSaturation » dans le def « takePhoto » mais sa marche pas une fois dans le programme, sa marche uniquement dans dans le bouton config

Pour te répondre a l’exemple je vais faire une vidéo pour montrer.

c’est prope a tkinter ?
car faudrait je me plonges dans la lib pour comprendre

Oui c’est un wiget de tkinter. Voici un lien de tout les wiget de tkinter en VF :

ok donne moi le code minimun pour faire apparaitre un scale

edit: c’est bon j’ai

j’ai touvé il faut utiliser la méthode get()
qui permet de retourner un valeur

voila un code minimal

from tkinter import *

fenetre = Tk()

value = DoubleVar()
scale = Scale(fenetre, variable=value)
scale.pack()
value.get()

amuse toi a bouger le curseur et met value.get() dans cette exemple

donc la tu na plus qu’a définir tes variable et tu est bon :wink:

Déjà fait :
scaleBrightness = Scale(root, from_=0, to=100, relief='solid', label="LUMI", resolution=10, tickinterval=50, length=180) scaleBrightness.pack(side=LEFT) scaleBrightness.set(100)

puis le scaleBrightness.get() dans le def takePhoto

et bien ou est le problème alors ?

C’est que les scales ne sont pas définis (code d’erreur) dans def takePhoto, est que je sais pas comment dire au programe que les valeurs des paramètres sont égales aux scales de def confg. comme sur cette exemple :
#check if need update setting
global rqsUpdateSetting
if rqsUpdateSetting == True:
rqsUpdateSetting = False
camera.sharpness = scaleSharpness.get()
camera.contrast = scaleContrast.get()
camera.brightness = scaleBrightness.get()
camera.saturation = scaleSaturation.get()
camera.exposure_compensation = scaleExpCompensation.get()

        awb_mode_setting = varAwbMode.get()
        labelAwbVar.set(awb_mode_setting)
        camera.awb_mode = awb_mode_setting

        if awb_mode_setting == "off":
            gr = scaleGainRed.get()
            gb = scaleGainBlue.get()
            gAwb = (gr, gb)
            camera.awb_gains = gAwb
            labelAwbVar.set(awb_mode_setting + " : "
                + str(gAwb))` 

plus loin dans le code :

'def cbScaleSetting(new_value):
global rqsUpdateSetting
rqsUpdateSetting = True

def cbButtons():
global rqsUpdateSetting
rqsUpdateSetting = True

tkTop = tk.Tk()
tkTop.wm_title(« Raspberry Pi Camera »)
tkTop.geometry(‹ 800x500 ›)

previewWin = tk.Toplevel(tkTop)
previewWin.title(‹ Preview ›)
previewWin.geometry(‹ 400x300 ›)
previewPanel = tk.Label(previewWin)
previewPanel.pack(side = « bottom », fill = « both », expand = « yes »)

tk.Label(tkTop, text=« http://helloraspberrypi.blogspot.com/ »).pack()
tk.Label(tkTop, text=require(‹ picamera ›)).pack()

tkButtonQuit = tk.Button(
tkTop, text=« Quit », command=quit)
tkButtonQuit.pack()

tkButtonCapture = tk.Button(
tkTop, text=« Capture », command=capture)
tkButtonCapture.pack()

SCALE_WIDTH = 780;

labelCapVal = tk.StringVar()
tk.Label(tkTop, textvariable=labelCapVal).pack()

notebook = ttk.Notebook(tkTop)
frame1 = ttk.Frame(notebook)
frame2 = ttk.Frame(notebook)
notebook.add(frame1, text=‹ Setting ›)
notebook.add(frame2, text=‹ White Balance ›)
notebook.pack()

Tab Setting

scaleSharpness = tk.Scale(
frame1,
from_=-100, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
label=« sharpness »,
command=cbScaleSetting)
scaleSharpness.set(0)
scaleSharpness.pack(anchor=tk.CENTER)’

c’est quoi ton code d’erreur ? sa nous permetra de savoir d’ou sa vient

car sa peux venir de ton interpréteur, pour etre sur copie ligne par ligne ton code ,comment tu lance d’ailleur ton script ?

si sa vient pas de interpréteur mais une valeur de ton choix au début de code en déclarent tes variable
car elle seront changer une fois le reste de ton code lancer

exemple
camera.sharpness = « b »

et dés que ta fonction viendra il sront changer en

comme sa c’est une erreur de variable non déclarer elle ont été déclarer :wink:

Salut voici comment j’execute le programe est les erreurs en directe.

salut,les premiere erreur sont en rapport avec les libs utilisé ,

et la seconde effectivement c’est une erreur de variable non défini .

teste avec un autre intépreteur car IDLE :scream: il est pas terrible du tout ,preuve ici Beautiful Soup fonctionne sur la PI ? - #5 par jojo - Python - Le Forum français de la Raspberry Pi - Raspberry Pi FR (Raspbian France)

prends celui de basse dans le terminal :wink:

teste aussi ligne par ligne et aprés lance le direct avec le script

Salut, même en le lancant avec le LXT j’ai les erreurs. il ce lance meme au démarage de l’os via LXT :confused:

ok la franchement en lisant le code ,j’arive pas a décerné l’erreur et c’est trés compliqué sans pouvoir le tester .

Est si je fait un autre fichier python par exemple le bouton de config ouvrirais un autre fichier pour les configs avec les curceurs est tout sa puis un bouton pour validés est fermer le fichier config.py pour revenir sur l’autre ?

Franchement je sait pas , j’avais penser que c’est pars que tu déclarait tes fonction sans appeler la fonction par la suite et dans les cas la , la variable et pas déclarer

exemple

car oui tant que je fais pas appelle a ma fonction , test() la variable a n’existe pas

mais sa ma pas l’air d’etre sa, vérifie quand même si tu a pas des variable déclaré uniquement dans des fonctions

Non j’ai que dans le config que j’ai des variable, le reste c’est des boutons et un canvas pour la photo.
Je comprend toujours pas comment il a pus faire… - YouTube

La je peux pas t’aider , quand je dois corriger du code je dois le tester , car le lire sa m’aide pas , j’ai pas les meme reflex et c’est trés dur de survoler un code qui nous appartient pas et de déceler l’erreur ou faudrait que je me plonges dedans intégralement en plus je suis pas utilisateur de tkinter , je prendrai 20 minutes se soir pour analyser tous sa , mais c’est pas dit que je trouve