diff --git "a/__pycache__/chercher_cam\303\251ra.cpython-311.pyc" "b/__pycache__/chercher_cam\303\251ra.cpython-311.pyc"
new file mode 100644
index 0000000000000000000000000000000000000000..ecfb16a20188bdd4eba6725239fc7089a480ac92
Binary files /dev/null and "b/__pycache__/chercher_cam\303\251ra.cpython-311.pyc" differ
diff --git a/chargement.py b/chargement.py
new file mode 100644
index 0000000000000000000000000000000000000000..36a2f01e5c3f76a1fe0116ee5f5ac5cc9966c04a
--- /dev/null
+++ b/chargement.py
@@ -0,0 +1,51 @@
+import inspect
+import time
+
+def count_function_lines(func):
+    """Counts the number of lines in a function."""
+    source_lines = inspect.getsourcelines(func)[0]
+    return len(source_lines)
+
+def progress_percentage(func, lines_done):
+    """Calculates the percentage of lines completed in a function."""
+    total_lines = count_function_lines(func)
+    if total_lines == 0:
+        return 0
+    return (lines_done / total_lines) * 100
+def current_line():
+    """Returns the current line number being executed in a function."""
+    return inspect.currentframe().f_back.f_lineno
+def fonction_longue():
+# Simulate a long function
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    time.sleep(2)
+    
+if __name__ == '__main__':
+    while progress_percentage(fonction_longue, current_line) < 100:
+        print(f"Line {current_line}: {progress_percentage(fonction_longue, current_line):.2f}%")
+        time.sleep(0.5)
+
+    
diff --git "a/chercher_cam\303\251ra.py" "b/chercher_cam\303\251ra.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a35893138713d40a452a42a552073ef1860b072d
--- /dev/null
+++ "b/chercher_cam\303\251ra.py"
@@ -0,0 +1,47 @@
+import cv2
+import tkinter as tk
+from tkinter import ttk
+
+def detect_cameras():
+    """Détecte les caméras connectées à l'ordinateur."""
+    cameras = []
+    for i in range(10):  # Vérifie les 10 premiers indices de caméra
+        cap = cv2.VideoCapture(i)
+        if cap.isOpened():
+            cameras.append(i)
+            cap.release()
+    return cameras
+
+def select_camera():
+    """Affiche une interface Tkinter pour sélectionner une caméra."""
+    cameras = detect_cameras()
+    if not cameras:
+        print("Aucune caméra détectée.")
+        return None
+
+    def on_select():
+        nonlocal selected_camera
+        selected_camera = int(camera_var.get())
+        root.destroy()
+
+    root = tk.Tk()
+    root.title("Sélection de la caméra")
+
+    tk.Label(root, text="Sélectionnez une caméra :").pack(pady=10)
+
+    camera_var = tk.StringVar(value=str(cameras[0]))
+    for cam in cameras:
+        ttk.Radiobutton(root, text=f"Caméra {cam}", variable=camera_var, value=str(cam)).pack(anchor=tk.W)
+
+    ttk.Button(root, text="Valider", command=on_select).pack(pady=10)
+
+    selected_camera = None
+    root.mainloop()
+    return selected_camera
+
+if __name__ == "__main__":
+    camera_index = select_camera()
+    if camera_index is not None:
+        print(f"Caméra sélectionnée : {camera_index}")
+    else:
+        print("Aucune caméra sélectionnée.")
\ No newline at end of file
diff --git a/test_cherchercamera.py b/test_cherchercamera.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ae040fe2299985c25b17371d3d3d938bb1950b5
--- /dev/null
+++ b/test_cherchercamera.py
@@ -0,0 +1,32 @@
+import chercher_caméra as cc
+import cv2
+import tkinter as tk
+
+def select_camera_lanceemnt():
+    camera_index = cc.select_camera()
+    if camera_index is not None:
+        cap = cv2.VideoCapture(camera_index)
+        if not cap.isOpened():
+            print("Erreur : Impossible d'ouvrir la caméra.")
+            return
+        
+        while True:
+            ret, frame = cap.read()
+            if not ret:
+                print("Erreur : Impossible de lire le flux vidéo.")
+                break
+            
+            cv2.imshow("Flux vidéo", frame)
+            
+            if cv2.waitKey(1) & 0xFF == ord('q'):  # Appuyez sur 'q' pour quitter
+                break
+        
+        cap.release()
+        cv2.destroyAllWindows()
+    if camera_index is not None:
+        print(f"Caméra sélectionnée : {camera_index}")
+    else:
+        print("Aucune caméra sélectionnée.")
+
+if __name__ == "__main__":
+    select_camera_lanceemnt()
\ No newline at end of file