aboutsummaryrefslogtreecommitdiff
path: root/detection.py
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2023-07-30 13:14:32 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2023-07-30 13:14:32 +0530
commit1921f03e8ba573018c95b78116c057cafae6b1c7 (patch)
tree89ac2c39a3ee85918fc82019d48cd77710399f0c /detection.py
parent165cd976078b212e116d6f545e7de2c6fa21ca86 (diff)
add detection
Diffstat (limited to 'detection.py')
-rw-r--r--detection.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/detection.py b/detection.py
new file mode 100644
index 0000000..fd200ab
--- /dev/null
+++ b/detection.py
@@ -0,0 +1,57 @@
+import cv2
+
+import numpy as np
+
+class Game:
+ def __init__(self) -> None:
+ # Open the webcame (0 is usually the default)
+ self.cap = cv2.VideoCapture(0)
+
+ def loop(self) -> None:
+ while True:
+ # Read frame
+ ret, frame = self.cap.read()
+
+ # If frame is not returned, break
+ if not ret:
+ break
+
+ # Convert frame from RGB to HSV, and define frame used for detection
+ det_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
+
+ # Define lower green and upper green
+ lower_green = np.array([60, 100, 100])
+ upper_green = np.array([100, 255, 255])
+
+ # Define green mask
+ green_mask = cv2.inRange(det_frame, lower_green, upper_green)
+
+ # Detect contours
+ contours, _ = cv2.findContours(green_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
+
+ # Find largest contour
+ largest_contour = max(contours, key=cv2.contourArea) if contours else None
+
+ # If largest contour is present, draw a green rectangle
+ if largest_contour is not None:
+ x, y, w, h = cv2.boundingRect(largest_contour)
+ cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
+
+ # Show frame
+ cv2.imshow('Foot Tracking', frame)
+
+ # Quit if 'q' is pressed
+ if cv2.waitKey(1) & 0xFF == ord('q'):
+ self.stop()
+
+ def stop(self) -> None:
+ # Release captured webcam
+ self.cap.release()
+
+ # Destroy all CV2 Windows
+ cv2.destroyAllWindows()
+
+if __name__ == '__main__':
+ game = Game()
+
+ game.loop() \ No newline at end of file