Bonjour,

J'ai commencé un programme pour afficher une webcam et enregistré l'image.
L'affichage de l'image de la webcam fonctionne mais ne se met pas a jour et pour le moment l'enregistrement d'une image bug.
J'ai tenté de mettre a jour l'image avec la méthode "after" et avec un bouton mais rien ne marche...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import numpy as np
import cv2
import tkinter as tk
from PIL import Image, ImageTk
 
class Webcam:
    """Affiche Webcam sous Tkinter'"""
 
    def __init__(self,device=0):
        self.device=device
        self.capture_image_tk()
 
    #Pour capturer l'image de la webcam
    def capture_image_cv2(self):
        cap = cv2.VideoCapture(self.device)
        return cap.read()
 
    #Pour capturer l'image de la webcam
    def capture_image_tk(self):
        im, frame = self.capture_image_cv2()
        # Convert the Image object into a TkPhoto object
        im = Image.fromarray(frame)
        self.image = ImageTk.PhotoImage(image=im) 
 
    #Pour capturer l'image est sauvegarder l'image dans une fichier
    def save_image(self):
        img = self.capture_image_cv2()
        cv2.imwrite("test.bmp",img)
 
# A root window for displaying objects
root = tk.Tk()  
frame = tk.Frame(root)
frame.pack()
 
imgtk = Webcam(device=0)
def test():
	global imgtk
	imgtk = Webcam(device=0)
 
# Put it in the display window
tk.Label(root, image=imgtk.image).pack() 
 
button = tk.Button(frame, text="Refresh", command=test)
button.pack(side=tk.LEFT)
 
button = tk.Button(frame, text="Save", command=imgtk.save_image)
button.pack(side=tk.LEFT)
 
root.after(1000,test())
root.mainloop() # Start the GUI