From 643394fa2b7bdaa3b350ff3e1172c20cc3462c3c Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 1 Jan 2025 11:44:15 +0530 Subject: [PATCH 1/9] Create README.md --- README.md | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7d3f05a --- /dev/null +++ b/README.md @@ -0,0 +1,101 @@ +# AI Virtual Mouse + +## This Project is Done By: +- **Shinde Vrushali** +- **Tajanpure Kiran** +- **Bhagat Ashwini** +- **Tarde Pooja** + +--- + +## Project Description +The **AI Virtual Mouse** project aims to create a touchless mouse interface that allows users to control their computers using hand gestures and movements. This innovative system uses a camera to monitor hand movements and translates those movements into actions on the computer screen, such as moving the mouse pointer or clicking. + +The core of this project involves: +1. **Capturing Real-Time Visuals**: Utilizing a webcam to record hand movements. +2. **Processing Visual Data**: Using advanced computer vision techniques with libraries like OpenCV and MediaPipe to identify key landmarks on the hand (fingertips, joints, etc.). +3. **Recognizing Gestures**: Translating gestures into mouse actions, like moving the cursor or performing clicks. + +--- + +## Key Components + +### 1) Camera +Captures real-time images or videos of the user's hand movements. +### 2) Computer Vision +Analyzes the captured visuals to detect and interpret hand gestures using machine learning models. +### 3) Software +Implements the system using programming languages like Python, alongside libraries such as OpenCV and MediaPipe. + +--- + +## Why We Selected This Project +1. **Innovation**: Utilizes cutting-edge technologies like computer vision and AI. +2. **Accessibility**: Provides a hands-free control system, aiding individuals who cannot use a traditional mouse. +3. **Practical Use**: Finds applications in gaming, healthcare, and other environments where physical contact is limited. + +--- + +## Challenges Faced +1. **Gesture Recognition Accuracy**: Achieving high precision in detecting hand gestures in different lighting conditions. +2. **Hardware Limitations**: Ensuring the system works efficiently on devices with low processing power. +3. **Real-time Performance**: Reducing lag between gesture input and system response. +4. **Gesture Overlap**: Preventing confusion when similar gestures are performed consecutively. + +### How We Overcame These Challenges +- Fine-tuned the gesture detection models to work in variable lighting. +- Optimized the code to ensure smooth performance on lower-end systems. +- Implemented gesture differentiation algorithms to avoid overlaps. + +--- + +## Are We Able to Alter This Code? +Yes, the code is modular and easy to modify. Developers can: +1. **Add New Gestures**: Expand the system by defining new gestures for specific actions. +2. **Integrate Additional Features**: Include functionalities like voice commands or keyboard emulation. +3. **Improve Performance**: Enhance detection speed by optimizing model parameters. +4. **Adapt for Different Environments**: Adjust the code for gaming, healthcare, or other specific use cases. + +--- + +## Security Features +To ensure only authorized users can access the AI Virtual Mouse, several security features are included: +- **User Authentication**: Requires login credentials before using the system. +- **Gesture-Based Authentication**: Employs specific gestures as an additional layer of security. +- **Access Logs**: Maintains a record of usage to monitor unauthorized access. + +--- + +## Libraries Used +1. **NumPy**: Handles large datasets and performs numeric and scientific computations. +2. **OpenCV (cv2)**: Processes images and videos to detect hand gestures. +3. **MediaPipe**: Tracks hand movements in real-time, recognizing landmarks and gestures. +4. **PyAutoGUI**: Controls the mouse and keyboard, enabling hand gestures to perform actions like moving and clicking. +5. **pyttsx3**: library converts text to speech, allowing you to set properties like voice, rate, and volume, and speak or save text as audio. +##use +``` +pip install pyttsx3 +pip install opencv-python +pip install mediapipe +pip install pyautogui +``` +--- + +## Example of Implementation +Below is an example image of how the AI Virtual Mouse works in real time: + +![AI Virtual Mouse Demo](path_or_url_to_image) + +--- +## Applications +- **Gaming**: Hands-free control enhances gaming experiences. +- **Healthcare**: Useful in sterile environments where touch is not allowed. +- **Assistive Technology**: Aids individuals with physical disabilities. + +--- + +## Contact +For inquiries, feel free to reach out to us: +- **Email**: kirantajanpure48@gmail.com +- **GitHub**: [https://github.com/kiran28092003](https://github.com/kiran28092003) +- **LinkedIn**: [https://www.linkedin.com/in/kiran-tajanpure-a7509225b](https://www.linkedin.com/in/kiran-tajanpure-a7509225b) From 0c7f11b44905083e0b4344c2041c1f9b09db9789 Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 1 Jan 2025 11:55:25 +0530 Subject: [PATCH 2/9] Add files via upload --- Screenshot (93).png | Bin 0 -> 152241 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshot (93).png diff --git a/Screenshot (93).png b/Screenshot (93).png new file mode 100644 index 0000000000000000000000000000000000000000..62b2f361e3df9af0c83d6bc53ab0db03c9b404ed GIT binary patch literal 152241 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 Vc5Xgz!6D4 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 _h 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 Date: Wed, 1 Jan 2025 11:56:53 +0530 Subject: [PATCH 3/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d3f05a..0721054 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ pip install pyautogui ## Example of Implementation Below is an example image of how the AI Virtual Mouse works in real time: -![AI Virtual Mouse Demo](path_or_url_to_image) +![AI Virtual Mouse Demo](Screenshot (93).png) --- ## Applications From 9f136faad4bb7552f4a2093842d1422f8fd2b562 Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 1 Jan 2025 12:04:02 +0530 Subject: [PATCH 4/9] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0721054..5bb56b6 100644 --- a/README.md +++ b/README.md @@ -83,9 +83,8 @@ pip install pyautogui ## Example of Implementation Below is an example image of how the AI Virtual Mouse works in real time: - -![AI Virtual Mouse Demo](Screenshot (93).png) - +![Screenshot (93)](https://github.com/user-attachments/assets/e343a5c8-cf3c-4f51-8c27-1175261f2b18) +This is the additional Feature GUI we added to it --- ## Applications - **Gaming**: Hands-free control enhances gaming experiences. From 824bd56b4fff913d8b035e2dfc433695905b937b Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 1 Jan 2025 12:46:32 +0530 Subject: [PATCH 5/9] Update README.md --- README.md | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 5bb56b6..86eb7dd 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,6 @@ Implements the system using programming languages like Python, alongside librari --- -## Are We Able to Alter This Code? -Yes, the code is modular and easy to modify. Developers can: -1. **Add New Gestures**: Expand the system by defining new gestures for specific actions. -2. **Integrate Additional Features**: Include functionalities like voice commands or keyboard emulation. -3. **Improve Performance**: Enhance detection speed by optimizing model parameters. -4. **Adapt for Different Environments**: Adjust the code for gaming, healthcare, or other specific use cases. - ---- ## Security Features To ensure only authorized users can access the AI Virtual Mouse, several security features are included: @@ -72,18 +64,40 @@ To ensure only authorized users can access the AI Virtual Mouse, several securit 3. **MediaPipe**: Tracks hand movements in real-time, recognizing landmarks and gestures. 4. **PyAutoGUI**: Controls the mouse and keyboard, enabling hand gestures to perform actions like moving and clicking. 5. **pyttsx3**: library converts text to speech, allowing you to set properties like voice, rate, and volume, and speak or save text as audio. -##use +--- + +## Example of Implementation +Below is an example image of how the AI Virtual Mouse works in real time: + +**steps to Execute-** +- step 1) +## install all libraries: ``` pip install pyttsx3 pip install opencv-python pip install mediapipe pip install pyautogui ``` ---- +make sure your version of python is satisfies the libraries requirement ...we are using python 3.12 +``` +python --version +``` +- step 2) +- +![Screenshot (97)](https://github.com/user-attachments/assets/6f64a456-cccd-4be9-80da-73ca50f1ae6d) + +- step 3) +- +![Screenshot (93)](https://github.com/user-attachments/assets/23e7f71a-1d8c-431e-83b4-07ad8e20039f) +- step 4) +- +![Screenshot 2025-01-01 122819](https://github.com/user-attachments/assets/285dd0cb-b049-4667-8474-7e688b33bd87) +- step 4) +- +![Screenshot (94)](https://github.com/user-attachments/assets/f034a790-a512-4abf-9112-6f4ba0be4a94) +![Screenshot (95)](https://github.com/user-attachments/assets/dd968ad7-548d-426b-9901-43ae99bafb80) +![Screenshot (99)](https://github.com/user-attachments/assets/de8d35e5-f4b6-4725-baba-60ccf02eaf90) -## Example of Implementation -Below is an example image of how the AI Virtual Mouse works in real time: -![Screenshot (93)](https://github.com/user-attachments/assets/e343a5c8-cf3c-4f51-8c27-1175261f2b18) This is the additional Feature GUI we added to it --- ## Applications From de479318aaad917bd473ab23c222fd19d9b3e8aa Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 1 Jan 2025 13:06:09 +0530 Subject: [PATCH 6/9] Update README.md --- README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/README.md b/README.md index 86eb7dd..33a0639 100644 --- a/README.md +++ b/README.md @@ -112,3 +112,33 @@ For inquiries, feel free to reach out to us: - **Email**: kirantajanpure48@gmail.com - **GitHub**: [https://github.com/kiran28092003](https://github.com/kiran28092003) - **LinkedIn**: [https://www.linkedin.com/in/kiran-tajanpure-a7509225b](https://www.linkedin.com/in/kiran-tajanpure-a7509225b) + +--- + +## Future Scope + +1. **Gesture Expansion** + Introduce a wider range of gestures for advanced mouse operations, such as drag-and-drop, zooming, and scrolling. + +2. **Voice Integration** + Combine gesture recognition with voice commands for a hybrid hands-free interface. + +3. **Cross-Platform Compatibility** + Extend support to various operating systems like macOS, Linux, and mobile platforms. + +4. **Improved Accuracy** + Enhance gesture recognition algorithms to work effectively in diverse lighting conditions and backgrounds. + +5. **AR/VR Integration** + Use the AI Virtual Mouse in augmented reality (AR) and virtual reality (VR) environments for immersive user experiences. + +6. **Accessibility Enhancements** + Adapt the system further for individuals with disabilities, making it more inclusive and accessible. + +7. **Customizable UI** + Provide users with the ability to configure gestures and corresponding actions according to their preferences. + +8. **Disaster Management Integration** + Utilize AI Virtual Mouse technology in disaster response scenarios, enabling hands-free control of systems for monitoring, communication, and rescue operations in hazardous environments. + +--- From 5594cd5497577ea29ab1ed72316c10980efc519a Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 1 Jan 2025 13:42:07 +0530 Subject: [PATCH 7/9] Add files via upload --- AI_MouseHandGuestures.py | 150 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 AI_MouseHandGuestures.py diff --git a/AI_MouseHandGuestures.py b/AI_MouseHandGuestures.py new file mode 100644 index 0000000..2feb3a5 --- /dev/null +++ b/AI_MouseHandGuestures.py @@ -0,0 +1,150 @@ +import cv2 +import numpy as np +import mediapipe as mp +import pyautogui +import pyttsx3 +import time + + +class VirtualMouse: + def __init__(self, camera_width=1280, camera_height=720, speed_factor=2): + self.camera_width = camera_width + self.camera_height = camera_height + self.speed_factor = speed_factor + self.screen_width, self.screen_height = pyautogui.size() + + # Gesture flags + self.left_click_gesture = False + self.right_click_gesture = False + self.scroll_gesture = False + self.mouse_movement_gesture = False + self.double_click_gesture = False + self.last_click_time = 0 + + # Initialize MediaPipe and speech engine + self.mp_drawing = mp.solutions.drawing_utils + self.mp_hands = mp.solutions.hands + self.hands = self.mp_hands.Hands(max_num_hands=1) + self.engine = pyttsx3.init() + + # Camera setup + self.cap = cv2.VideoCapture(0) + + def speak(self, text): + """ Function to speak text using pyttsx3 """ + self.engine.say(text) + self.engine.runAndWait() + + def process_gestures(self, hand_landmarks): + """ Function to process gestures from hand landmarks """ + finger_coords = np.array([[l.x * self.camera_width, l.y * self.camera_height] for l in hand_landmarks.landmark]) + wrist_coords = np.array([hand_landmarks.landmark[0].x * self.camera_width, hand_landmarks.landmark[0].y * self.camera_height]) + + # Thumb movement for mouse movement + thumb_coords = finger_coords[4] + if thumb_coords[0] < wrist_coords[0] - 50: # Adjust the threshold for thumb movement + self.mouse_movement_gesture = True + else: + self.mouse_movement_gesture = False + + # Left click gesture + if finger_coords[8][1] < finger_coords[6][1] and finger_coords[12][1] > finger_coords[10][1]: + self.left_click_gesture = True + else: + self.left_click_gesture = False + + # Right click gesture + if np.linalg.norm(finger_coords[4] - finger_coords[8]) < 40 and all(np.linalg.norm(finger_coords[i] - wrist_coords) > 40 for i in range(1, 5)): + self.right_click_gesture = True + else: + self.right_click_gesture = False + + # Double click gesture + if np.linalg.norm(finger_coords[8] - finger_coords[12]) < 40: + if time.time() - self.last_click_time < 0.3: + self.double_click_gesture = True + self.last_click_time = time.time() + else: + self.double_click_gesture = False + + # Scroll gesture + if finger_coords[16][1] > finger_coords[14][1]: + self.scroll_gesture = True + else: + self.scroll_gesture = False + + def perform_actions(self): + """ Perform mouse actions based on recognized gestures """ + if self.left_click_gesture: + pyautogui.click() + + if self.right_click_gesture: + pyautogui.click(button='right') + + if self.double_click_gesture: + pyautogui.doubleClick() + + if self.scroll_gesture: + pyautogui.scroll(10) # Scroll down + + def move_mouse(self, thumb_coords): + """ Move the mouse based on thumb coordinates """ + new_x = max(0, min(thumb_coords[0] * self.speed_factor, self.screen_width - 1)) + new_y = max(0, min(thumb_coords[1] * self.speed_factor, self.screen_height - 1)) + pyautogui.moveTo(new_x, new_y) + + def process_frame(self, image): + """ Process each frame to detect gestures and perform actions """ + display_image = cv2.flip(image, 1) + image_rgb = cv2.cvtColor(display_image, cv2.COLOR_BGR2RGB) + results = self.hands.process(image_rgb) + + if results.multi_hand_landmarks: + for hand_landmarks in results.multi_hand_landmarks: + self.mp_drawing.draw_landmarks(display_image, hand_landmarks, self.mp_hands.HAND_CONNECTIONS) + + self.process_gestures(hand_landmarks) + + # Thumb coordinates for mouse movement + thumb_coords = np.array([hand_landmarks.landmark[4].x * self.camera_width, hand_landmarks.landmark[4].y * self.camera_height]) + + # Perform actions based on gestures + self.perform_actions() + + # Move the mouse + if self.mouse_movement_gesture: + self.move_mouse(thumb_coords) + + # Draw circles on hand landmarks for visualization + finger_coords = np.array([[l.x * self.camera_width, l.y * self.camera_height] for l in hand_landmarks.landmark]) + cv2.circle(display_image, tuple(np.array([finger_coords[8][0], finger_coords[8][1]]).astype(int)), 10, (255, 0, 0), -1) # Blue color + cv2.circle(display_image, tuple(np.array([finger_coords[12][0], finger_coords[12][1]]).astype(int)), 10, (255, 0, 0), -1) # Blue color + cv2.circle(display_image, tuple(np.array([finger_coords[4][0], finger_coords[4][1]]).astype(int)), 10, (255, 192, 203), -1) # Pink color + cv2.circle(display_image, tuple(np.array([finger_coords[16][0], finger_coords[16][1]]).astype(int)), 10, (0, 255, 0), -1) # Green color + + return display_image + + def run(self): + """ Main loop to run the Virtual Mouse """ + self.speak("Press Esc key to exit the program.") + + while self.cap.isOpened(): + success, image = self.cap.read() + if not success: + print("Ignoring empty camera frame.") + continue + + display_image = self.process_frame(image) + + cv2.imshow('Virtual Mouse', display_image) + + if cv2.waitKey(1) & 0xFF == 27: # Exit if 'Esc' key is pressed + break + + self.cap.release() + cv2.destroyAllWindows() + + +if __name__ == "__main__": + virtual_mouse = VirtualMouse() + virtual_mouse.run() From 8c2cee57ddb0d1862af8af86b9f6fb4e2d5d109b Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 1 Jan 2025 13:43:56 +0530 Subject: [PATCH 8/9] Add files via upload --- VirtualMouse.py | 178 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 VirtualMouse.py diff --git a/VirtualMouse.py b/VirtualMouse.py new file mode 100644 index 0000000..3eee3f2 --- /dev/null +++ b/VirtualMouse.py @@ -0,0 +1,178 @@ +import tkinter as tk +from tkinter import messagebox, simpledialog +import cv2 +import numpy as np +import mediapipe as mp +import pyautogui +import pyttsx3 +import time +import re + + +class VirtualMouse: + def __init__(self, password="123"): + self.PASSWORD = password + self.virtual_mouse_on = False + self.last_click_time = 0 + + # Mediapipe initialization + self.mp_drawing = mp.solutions.drawing_utils + self.mp_hands = mp.solutions.hands + self.hands = self.mp_hands.Hands(max_num_hands=1) + + self.screen_width, self.screen_height = pyautogui.size() + self.camera_width, self.camera_height = 1280, 720 + + def start_program(self): + self.virtual_mouse_on = True + cap = cv2.VideoCapture(0) + engine = pyttsx3.init() + engine.say("Starting the virtual mouse program. Press Esc to exit.") + engine.runAndWait() + + while cap.isOpened() and self.virtual_mouse_on: + success, image = cap.read() + if not success: + print("Ignoring empty camera frame.") + continue + + display_image = cv2.flip(image, 1) + image_rgb = cv2.cvtColor(display_image, cv2.COLOR_BGR2RGB) + results = self.hands.process(image_rgb) + + if results.multi_hand_landmarks: + for hand_landmarks in results.multi_hand_landmarks: + self.mp_drawing.draw_landmarks(display_image, hand_landmarks, self.mp_hands.HAND_CONNECTIONS) + self.process_gestures(hand_landmarks) + + cv2.imshow('Virtual Mouse', display_image) + + if cv2.waitKey(1) & 0xFF == 27: # Exit if 'Esc' key is pressed + break + + cap.release() + cv2.destroyAllWindows() + + def process_gestures(self, hand_landmarks): + finger_coords = np.array([[l.x * self.camera_width, l.y * self.camera_height] for l in hand_landmarks.landmark]) + wrist_coords = np.array([hand_landmarks.landmark[0].x * self.camera_width, hand_landmarks.landmark[0].y * self.camera_height]) + + thumb_coords = finger_coords[4] + + left_click_gesture = finger_coords[8][1] < finger_coords[6][1] and finger_coords[12][1] > finger_coords[10][1] + right_click_gesture = np.linalg.norm(finger_coords[4] - finger_coords[8]) < 40 and all( + np.linalg.norm(finger_coords[i] - wrist_coords) > 40 for i in range(1, 5)) + double_click_gesture = np.linalg.norm(finger_coords[8] - finger_coords[12]) < 40 and time.time() - self.last_click_time < 0.3 + scroll_gesture = finger_coords[16][1] > finger_coords[14][1] + mouse_movement_gesture = thumb_coords[0] < wrist_coords[0] - 50 + + self.last_click_time = time.time() if double_click_gesture else self.last_click_time + + # Perform actions + if left_click_gesture: + pyautogui.click() + if right_click_gesture: + pyautogui.click(button='right') + if double_click_gesture: + pyautogui.doubleClick() + if scroll_gesture: + pyautogui.scroll(10) + if mouse_movement_gesture: + new_x = max(0, min(thumb_coords[0], self.screen_width - 1)) + new_y = max(0, min(thumb_coords[1], self.screen_height - 1)) + pyautogui.moveTo(new_x, new_y) + + +class VirtualMouseGUI: + def __init__(self): + self.virtual_mouse = VirtualMouse() + self.root = tk.Tk() + self.setup_gui() + + def setup_gui(self): + self.root.title("Virtual Mouse Control") + self.screen_width = self.root.winfo_screenwidth() + self.screen_height = self.root.winfo_screenheight() + + self.root.geometry(f"{self.screen_width}x{self.screen_height}") + self.root.configure(bg='lightblue') + + self.name_label = tk.Label(self.root, text="Name:", bg='lightblue') + self.name_label.pack(pady=(10, 0)) + self.name_entry = tk.Entry(self.root) + self.name_entry.pack(pady=5) + + self.password_label = tk.Label(self.root, text="Password:", bg='lightblue') + self.password_label.pack() + self.password_entry = tk.Entry(self.root, show="*") + self.password_entry.pack(pady=(0, 10)) + + self.start_btn = tk.Button(self.root, text="Start Virtual Mouse", command=self.start_virtual_mouse) + self.start_btn.pack(pady=10) + + self.exit_btn = tk.Button(self.root, text="Exit", command=self.exit_program) + self.exit_btn.pack(pady=10) + + self.label = tk.Label(self.root, text="", bg='lightblue') + self.label.pack() + + def start_virtual_mouse(self): + name = self.name_entry.get() + password = self.password_entry.get() + + if not self.validate_name(name): + messagebox.showwarning("Invalid Name", "Please input a valid name.") + return + + if name.lower() == "kiran" and password == self.virtual_mouse.PASSWORD: + result = messagebox.askquestion("Confirmation", "Welcome Madam, do you want to turn on the virtual mouse program?") + if result == 'yes': + self.countdown(3) + self.virtual_mouse.start_program() + else: + feedback = simpledialog.askstring("Feedback", "Please provide feedback:") + if feedback: + messagebox.showinfo("Thank You", "Thank you for your feedback!") + else: + messagebox.showinfo("Information", "No feedback provided.") + + self.root.quit() + else: + messagebox.showwarning("Invalid User", "You are not authorized to use this program.") + + def countdown(self, count): + self.label.config(text=f"Starting in {count} seconds...") + if count > 0: + self.root.after(1000, self.countdown, count - 1) + else: + self.label.config(text="") + self.root.update() + + @staticmethod + def validate_name(name): + pattern = r'^[a-zA-Z ]+$' + return bool(re.match(pattern, name)) + + def exit_program(self): + feedback = simpledialog.askstring("Feedback", "Please provide feedback:") + if feedback: + messagebox.showinfo("Thank You", "Thank you for your feedback!") + else: + messagebox.showinfo("Information", "No feedback provided.") + self.root.quit() + + def run(self): + self.root.mainloop() + + +class VirtualMouseApp: + def __init__(self): + self.gui = VirtualMouseGUI() + + def start(self): + self.gui.run() + + +if __name__ == "__main__": + app = VirtualMouseApp() + app.start() From 2facd1f73a0c5640a81863f20165313bff396ff6 Mon Sep 17 00:00:00 2001 From: Kiran Tajanpure <129212680+kiran28092003@users.noreply.github.com> Date: Wed, 22 Jan 2025 20:06:43 +0530 Subject: [PATCH 9/9] Update README.md --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 33a0639..17e67f5 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,7 @@ # AI Virtual Mouse ## This Project is Done By: -- **Shinde Vrushali** -- **Tajanpure Kiran** -- **Bhagat Ashwini** -- **Tarde Pooja** +- **Tajanpure Kiran Ambadas** ---