""" Programme qui permet de prendre des photos depuis la webcam du PC. Ce programme utilise la librairie (module) OpenCV. La photo est affichée dans une fenêtre, les touches utiles sont : - "Esc" : on sort de l'application, - "Barre d'espace" : on prend une photo, on l'affiche dans une fenêtre et on l'enregistre. """ # Librairie qui permet de manipuler les dates from datetime import datetime # Utilisation de la librairie OpenCV import cv2 # On ouvre une fenêtre qui a pour titre "Photomaton". # Cette fenêtre permettra d'afficher l'image en cours. cv2.namedWindow("Live") cv2.namedWindow("Photomaton") # On ouvre la webcam d'index 0 camera = cv2.VideoCapture(0) # Boucle infinie while True: # On capture une photo ret, frame = camera.read() # On affiche la photo sur la fenêtre cv2.imshow("Live", frame) # On attend que l'utilisateur appuie sur une touche # 100 milli secondes = 0,1 seconde. # La fonction retourne le code ASCII de la touche pressée. touche = cv2.waitKey(100) # Si la touche pressée est "Esc" (ASCII => 27) if touche == 27: # On arrête la boucle infinie break # Si la touche pressée est "Barre d'espace" (ASCII => 32) if touche == 32: # On construit une chaine de caractères contenant la date actuelle. # Cette chaine de caractères permettra de nommer le fichier image. date_str = datetime.strftime( datetime.now(), # La date courante "%Y-%m-%d_%H-%M-%S") # Le format du résultat, sous forme : année-mois-jour_heure-minutes-secondes # Ecriture du fichier, avec le nom (= date courante) + extension (JPEG) cv2.imwrite(date_str + ".jpg", frame) # On "retient" la photo originale prise pour la modifier photo = frame cv2.putText( photo, # Image "Hello!!!", # Texte (30, 30), # Origine cv2.FONT_HERSHEY_DUPLEX, # Police de caractères 2, # Echelle de police (255, 0, 255), # Couleur (B, G, R) 3, # Epaisseur du trait cv2.LINE_4, # Type de ligne True # Texte en mirroir horizontal ) # On affiche la photo cv2.imshow("Photomaton", photo) # Ecriture du fichier, avec le nom (= date courante) + extension (JPEG) cv2.imwrite(date_str + "_text.jpg", frame) # On éjecte la caméra camera.release() # On détruit toutes les fenêtres construites cv2.destroyAllWindows()