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 |
Partager