{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [], "gpuType": "T4" }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" }, "accelerator": "GPU" }, "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "mLWjwg8voVoQ", "outputId": "6bcef00f-e4f3-4c97-cee0-d92cf6383d3c" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (1.25.2)\n", "Requirement already satisfied: opencv-python in /usr/local/lib/python3.10/dist-packages (4.8.0.76)\n" ] } ], "source": [ "pip install numpy opencv-python\n" ] }, { "cell_type": "code", "source": [ "import numpy as np\n", "import cv2\n", "from collections import defaultdict\n", "\n", "\n", "# Define color ranges (in HSV)\n", "COLOR_RANGES = {\n", " 'red': ([0, 100, 100], [10, 255, 255]),\n", " 'blue': ([110, 100, 100], [130, 255, 255]),\n", " 'green': ([50, 100, 100], [70, 255, 255]),\n", " 'yellow': ([20, 100, 100], [30, 255, 255])\n", "}\n", "\n", "def process_video(video_path):\n", " cap = cv2.VideoCapture(video_path)\n", "\n", " frame_count = 0\n", " ball_trackers = defaultdict(lambda: defaultdict(dict))\n", " events = []\n", "\n", " while cap.isOpened():\n", " ret, frame = cap.read()\n", " if not ret:\n", " break\n", "\n", " frame_count += 1\n", "\n", " balls = detect_balls(frame)\n", " update_trackers(ball_trackers, balls, frame_count)\n", " new_events = check_events(ball_trackers, frame_count)\n", " events.extend(new_events)\n", "\n", " cap.release()\n", " return events\n", "\n" ], "metadata": { "id": "pydVgym-odFz" }, "execution_count": 4, "outputs": [] }, { "cell_type": "code", "source": [ "def detect_balls(frame):\n", " hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)\n", " balls = {}\n", "\n", " for color, (lower, upper) in COLOR_RANGES.items():\n", " mask = cv2.inRange(hsv, np.array(lower), np.array(upper))\n", " mask = cv2.erode(mask, None, iterations=2)\n", " mask = cv2.dilate(mask, None, iterations=2)\n", "\n", " contours, _ = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n", "\n", " for contour in contours:\n", " if cv2.contourArea(contour) > 100: # Minimum area threshold\n", " M = cv2.moments(contour)\n", " center = (int(M[\"m10\"] / M[\"m00\"]), int(M[\"m01\"] / M[\"m00\"]))\n", " balls[center] = color\n", "\n", " return balls" ], "metadata": { "id": "z9rpgDjOovlP" }, "execution_count": 5, "outputs": [] }, { "cell_type": "code", "source": [ "def update_trackers(trackers, balls, frame_count):\n", " for center, color in balls.items():\n", " if color not in trackers or all(abs(existing_center[0] - center[0]) > 20 or abs(existing_center[1] - center[1]) > 20 for existing_center in trackers[color]):\n", " trackers[color][center] = {'first_seen': frame_count, 'last_seen': frame_count, 'current_quadrant': get_quadrant(center)}\n", " else:\n", " closest_center = min(trackers[color], key=lambda x: ((x[0] - center[0])**2 + (x[1] - center[1])**2)**0.5)\n", " trackers[color][closest_center]['last_seen'] = frame_count\n", " trackers[color][closest_center]['current_quadrant'] = get_quadrant(center)\n", " if closest_center != center:\n", " trackers[color][center] = trackers[color].pop(closest_center)\n", "\n", "def get_quadrant(center):\n", " x, y = center\n", " if x < 320 and y < 240:\n", " return 1\n", " elif x >= 320 and y < 240:\n", " return 2\n", " elif x < 320 and y >= 240:\n", " return 3\n", " else:\n", " return 4" ], "metadata": { "id": "dPa63ZoAoz7H" }, "execution_count": 6, "outputs": [] }, { "cell_type": "code", "source": [ "def check_events(trackers, frame_count):\n", " events = []\n", " for color in list(trackers.keys()):\n", " for center in list(trackers[color].keys()):\n", " data = trackers[color][center]\n", " if frame_count - data['last_seen'] > 5: # Ball disappeared\n", " events.append({\n", " 'time': data['last_seen'],\n", " 'quadrant': data['current_quadrant'],\n", " 'color': color,\n", " 'type': 'Exit'\n", " })\n", " del trackers[color][center]\n", " if not trackers[color]: # If this was the last ball of this color\n", " del trackers[color]\n", " elif data['first_seen'] == frame_count: # New ball appeared\n", " events.append({\n", " 'time': frame_count,\n", " 'quadrant': data['current_quadrant'],\n", " 'color': color,\n", " 'type': 'Entry'\n", " })\n", " elif data['current_quadrant'] != get_quadrant(center): # Ball changed quadrant\n", " events.append({\n", " 'time': frame_count,\n", " 'quadrant': data['current_quadrant'],\n", " 'color': color,\n", " 'type': 'Exit'\n", " })\n", " data['current_quadrant'] = get_quadrant(center)\n", " events.append({\n", " 'time': frame_count,\n", " 'quadrant': data['current_quadrant'],\n", " 'color': color,\n", " 'type': 'Entry'\n", " })\n", " return events" ], "metadata": { "id": "YWoyBRfHqHPJ" }, "execution_count": 7, "outputs": [] }, { "cell_type": "code", "source": [ "video_path = \"/content/sample.mp4\"\n", "events = process_video(video_path)\n", "\n", "# Output events\n", "for event in events:\n", " print(f\"Time: {event['time']}, Quadrant: {event['quadrant']}, \"\n", " f\"Color: {event['color']}, Type: {event['type']}\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "00mLRHrOo7Q1", "outputId": "52d32c49-1b8e-4846-9df8-e9373624fd20" }, "execution_count": 11, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Time: 1, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1, Quadrant: 2, Color: red, Type: Entry\n", "Time: 2, Quadrant: 2, Color: red, Type: Exit\n", "Time: 14, Quadrant: 4, Color: red, Type: Exit\n", "Time: 61, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 62, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 63, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 63, Quadrant: 4, Color: red, Type: Entry\n", "Time: 64, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 64, Quadrant: 4, Color: red, Type: Entry\n", "Time: 65, Quadrant: 2, Color: yellow, Type: Entry\n", "Time: 65, Quadrant: 4, Color: red, Type: Entry\n", "Time: 66, Quadrant: 2, Color: yellow, Type: Entry\n", "Time: 61, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 67, Quadrant: 2, Color: yellow, Type: Entry\n", "Time: 62, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 63, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 64, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 64, Quadrant: 4, Color: red, Type: Exit\n", "Time: 65, Quadrant: 2, Color: yellow, Type: Exit\n", "Time: 65, Quadrant: 4, Color: red, Type: Exit\n", "Time: 66, Quadrant: 2, Color: yellow, Type: Exit\n", "Time: 80, Quadrant: 2, Color: yellow, Type: Entry\n", "Time: 78, Quadrant: 2, Color: yellow, Type: Exit\n", "Time: 84, Quadrant: 4, Color: red, Type: Exit\n", "Time: 99, Quadrant: 4, Color: red, Type: Entry\n", "Time: 102, Quadrant: 4, Color: red, Type: Exit\n", "Time: 111, Quadrant: 2, Color: red, Type: Entry\n", "Time: 131, Quadrant: 4, Color: red, Type: Entry\n", "Time: 131, Quadrant: 4, Color: red, Type: Exit\n", "Time: 137, Quadrant: 4, Color: red, Type: Entry\n", "Time: 137, Quadrant: 4, Color: red, Type: Exit\n", "Time: 168, Quadrant: 2, Color: red, Type: Exit\n", "Time: 177, Quadrant: 4, Color: red, Type: Entry\n", "Time: 182, Quadrant: 2, Color: red, Type: Entry\n", "Time: 182, Quadrant: 4, Color: red, Type: Exit\n", "Time: 300, Quadrant: 2, Color: red, Type: Exit\n", "Time: 309, Quadrant: 4, Color: red, Type: Entry\n", "Time: 312, Quadrant: 2, Color: red, Type: Entry\n", "Time: 314, Quadrant: 4, Color: red, Type: Entry\n", "Time: 309, Quadrant: 4, Color: red, Type: Exit\n", "Time: 316, Quadrant: 2, Color: red, Type: Entry\n", "Time: 313, Quadrant: 2, Color: red, Type: Exit\n", "Time: 315, Quadrant: 4, Color: red, Type: Exit\n", "Time: 316, Quadrant: 2, Color: red, Type: Exit\n", "Time: 335, Quadrant: 2, Color: red, Type: Entry\n", "Time: 362, Quadrant: 4, Color: red, Type: Entry\n", "Time: 363, Quadrant: 4, Color: red, Type: Entry\n", "Time: 364, Quadrant: 4, Color: red, Type: Entry\n", "Time: 364, Quadrant: 2, Color: red, Type: Entry\n", "Time: 365, Quadrant: 4, Color: red, Type: Entry\n", "Time: 366, Quadrant: 4, Color: red, Type: Entry\n", "Time: 362, Quadrant: 4, Color: red, Type: Exit\n", "Time: 363, Quadrant: 4, Color: red, Type: Exit\n", "Time: 364, Quadrant: 4, Color: red, Type: Exit\n", "Time: 364, Quadrant: 2, Color: red, Type: Exit\n", "Time: 364, Quadrant: 2, Color: red, Type: Exit\n", "Time: 365, Quadrant: 4, Color: red, Type: Exit\n", "Time: 374, Quadrant: 2, Color: red, Type: Entry\n", "Time: 387, Quadrant: 2, Color: red, Type: Exit\n", "Time: 412, Quadrant: 2, Color: red, Type: Entry\n", "Time: 420, Quadrant: 2, Color: red, Type: Exit\n", "Time: 432, Quadrant: 4, Color: red, Type: Entry\n", "Time: 434, Quadrant: 2, Color: red, Type: Entry\n", "Time: 438, Quadrant: 4, Color: red, Type: Exit\n", "Time: 442, Quadrant: 2, Color: red, Type: Exit\n", "Time: 453, Quadrant: 2, Color: red, Type: Entry\n", "Time: 458, Quadrant: 2, Color: red, Type: Exit\n", "Time: 466, Quadrant: 2, Color: red, Type: Entry\n", "Time: 474, Quadrant: 4, Color: red, Type: Entry\n", "Time: 479, Quadrant: 4, Color: red, Type: Entry\n", "Time: 479, Quadrant: 4, Color: red, Type: Exit\n", "Time: 479, Quadrant: 4, Color: red, Type: Exit\n", "Time: 497, Quadrant: 4, Color: red, Type: Entry\n", "Time: 494, Quadrant: 2, Color: red, Type: Exit\n", "Time: 499, Quadrant: 4, Color: red, Type: Exit\n", "Time: 530, Quadrant: 4, Color: red, Type: Entry\n", "Time: 530, Quadrant: 4, Color: red, Type: Exit\n", "Time: 536, Quadrant: 4, Color: red, Type: Entry\n", "Time: 536, Quadrant: 2, Color: red, Type: Entry\n", "Time: 537, Quadrant: 4, Color: red, Type: Entry\n", "Time: 536, Quadrant: 4, Color: red, Type: Exit\n", "Time: 536, Quadrant: 2, Color: red, Type: Exit\n", "Time: 542, Quadrant: 4, Color: red, Type: Entry\n", "Time: 542, Quadrant: 2, Color: red, Type: Entry\n", "Time: 539, Quadrant: 4, Color: red, Type: Exit\n", "Time: 548, Quadrant: 4, Color: red, Type: Entry\n", "Time: 547, Quadrant: 4, Color: red, Type: Exit\n", "Time: 548, Quadrant: 2, Color: red, Type: Exit\n", "Time: 548, Quadrant: 4, Color: red, Type: Exit\n", "Time: 627, Quadrant: 2, Color: red, Type: Entry\n", "Time: 628, Quadrant: 4, Color: red, Type: Entry\n", "Time: 628, Quadrant: 4, Color: red, Type: Exit\n", "Time: 635, Quadrant: 4, Color: red, Type: Entry\n", "Time: 636, Quadrant: 4, Color: red, Type: Entry\n", "Time: 637, Quadrant: 4, Color: red, Type: Entry\n", "Time: 638, Quadrant: 2, Color: red, Type: Entry\n", "Time: 634, Quadrant: 2, Color: red, Type: Exit\n", "Time: 634, Quadrant: 4, Color: red, Type: Exit\n", "Time: 635, Quadrant: 4, Color: red, Type: Exit\n", "Time: 636, Quadrant: 4, Color: red, Type: Exit\n", "Time: 637, Quadrant: 4, Color: red, Type: Exit\n", "Time: 643, Quadrant: 2, Color: red, Type: Entry\n", "Time: 638, Quadrant: 2, Color: red, Type: Exit\n", "Time: 649, Quadrant: 2, Color: red, Type: Entry\n", "Time: 645, Quadrant: 2, Color: red, Type: Exit\n", "Time: 660, Quadrant: 2, Color: red, Type: Exit\n", "Time: 700, Quadrant: 4, Color: red, Type: Entry\n", "Time: 701, Quadrant: 4, Color: red, Type: Entry\n", "Time: 702, Quadrant: 4, Color: red, Type: Entry\n", "Time: 703, Quadrant: 4, Color: red, Type: Entry\n", "Time: 704, Quadrant: 4, Color: red, Type: Entry\n", "Time: 705, Quadrant: 2, Color: red, Type: Entry\n", "Time: 700, Quadrant: 4, Color: red, Type: Exit\n", "Time: 701, Quadrant: 4, Color: red, Type: Exit\n", "Time: 702, Quadrant: 4, Color: red, Type: Exit\n", "Time: 703, Quadrant: 4, Color: red, Type: Exit\n", "Time: 709, Quadrant: 4, Color: red, Type: Entry\n", "Time: 704, Quadrant: 4, Color: red, Type: Exit\n", "Time: 706, Quadrant: 2, Color: red, Type: Exit\n", "Time: 713, Quadrant: 2, Color: red, Type: Entry\n", "Time: 710, Quadrant: 4, Color: red, Type: Exit\n", "Time: 717, Quadrant: 2, Color: red, Type: Entry\n", "Time: 720, Quadrant: 2, Color: red, Type: Exit\n", "Time: 733, Quadrant: 4, Color: red, Type: Entry\n", "Time: 737, Quadrant: 4, Color: red, Type: Entry\n", "Time: 737, Quadrant: 2, Color: red, Type: Entry\n", "Time: 738, Quadrant: 4, Color: red, Type: Entry\n", "Time: 741, Quadrant: 2, Color: red, Type: Entry\n", "Time: 736, Quadrant: 2, Color: red, Type: Exit\n", "Time: 737, Quadrant: 2, Color: red, Type: Exit\n", "Time: 738, Quadrant: 4, Color: red, Type: Exit\n", "Time: 738, Quadrant: 4, Color: red, Type: Exit\n", "Time: 738, Quadrant: 4, Color: red, Type: Exit\n", "Time: 741, Quadrant: 2, Color: red, Type: Exit\n", "Time: 790, Quadrant: 4, Color: red, Type: Entry\n", "Time: 792, Quadrant: 4, Color: red, Type: Entry\n", "Time: 793, Quadrant: 4, Color: red, Type: Entry\n", "Time: 790, Quadrant: 4, Color: red, Type: Exit\n", "Time: 796, Quadrant: 2, Color: red, Type: Entry\n", "Time: 792, Quadrant: 4, Color: red, Type: Exit\n", "Time: 796, Quadrant: 2, Color: red, Type: Exit\n", "Time: 818, Quadrant: 4, Color: red, Type: Entry\n", "Time: 818, Quadrant: 4, Color: red, Type: Exit\n", "Time: 885, Quadrant: 4, Color: red, Type: Entry\n", "Time: 887, Quadrant: 4, Color: red, Type: Entry\n", "Time: 887, Quadrant: 2, Color: red, Type: Entry\n", "Time: 886, Quadrant: 4, Color: red, Type: Exit\n", "Time: 892, Quadrant: 2, Color: red, Type: Entry\n", "Time: 893, Quadrant: 2, Color: yellow, Type: Entry\n", "Time: 887, Quadrant: 4, Color: red, Type: Exit\n", "Time: 887, Quadrant: 2, Color: red, Type: Exit\n", "Time: 897, Quadrant: 2, Color: red, Type: Entry\n", "Time: 898, Quadrant: 4, Color: red, Type: Entry\n", "Time: 899, Quadrant: 2, Color: red, Type: Entry\n", "Time: 897, Quadrant: 2, Color: yellow, Type: Exit\n", "Time: 903, Quadrant: 4, Color: red, Type: Entry\n", "Time: 898, Quadrant: 2, Color: yellow, Type: Exit\n", "Time: 898, Quadrant: 4, Color: red, Type: Exit\n", "Time: 898, Quadrant: 2, Color: red, Type: Exit\n", "Time: 898, Quadrant: 2, Color: red, Type: Exit\n", "Time: 904, Quadrant: 4, Color: red, Type: Entry\n", "Time: 905, Quadrant: 4, Color: red, Type: Entry\n", "Time: 900, Quadrant: 2, Color: red, Type: Exit\n", "Time: 906, Quadrant: 4, Color: red, Type: Entry\n", "Time: 907, Quadrant: 2, Color: red, Type: Entry\n", "Time: 907, Quadrant: 2, Color: red, Type: Entry\n", "Time: 903, Quadrant: 4, Color: red, Type: Exit\n", "Time: 904, Quadrant: 4, Color: red, Type: Exit\n", "Time: 910, Quadrant: 2, Color: red, Type: Entry\n", "Time: 908, Quadrant: 2, Color: red, Type: Exit\n", "Time: 911, Quadrant: 4, Color: red, Type: Exit\n", "Time: 911, Quadrant: 4, Color: red, Type: Exit\n", "Time: 911, Quadrant: 2, Color: red, Type: Exit\n", "Time: 920, Quadrant: 4, Color: red, Type: Entry\n", "Time: 921, Quadrant: 4, Color: red, Type: Entry\n", "Time: 929, Quadrant: 2, Color: red, Type: Exit\n", "Time: 935, Quadrant: 2, Color: red, Type: Entry\n", "Time: 935, Quadrant: 4, Color: red, Type: Exit\n", "Time: 936, Quadrant: 2, Color: red, Type: Exit\n", "Time: 943, Quadrant: 2, Color: red, Type: Entry\n", "Time: 939, Quadrant: 4, Color: red, Type: Exit\n", "Time: 944, Quadrant: 2, Color: red, Type: Exit\n", "Time: 955, Quadrant: 2, Color: red, Type: Entry\n", "Time: 955, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1017, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1031, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1034, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1035, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1035, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1036, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1036, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1031, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1037, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1037, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1039, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1040, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1035, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1035, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1035, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1041, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1043, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1038, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1038, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1040, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1040, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1044, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1044, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1044, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1048, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1050, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1082, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 1083, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1083, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 1084, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 1085, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 1082, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 1083, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 1084, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 1089, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1095, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1141, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1168, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1170, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1171, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1177, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1195, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1203, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1200, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1209, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1205, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1220, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1227, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1232, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1234, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1230, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1237, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1243, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1243, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1251, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1251, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1260, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1261, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1262, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1262, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1259, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1260, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1266, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1261, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1262, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1267, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1286, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1287, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1312, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1312, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1312, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1312, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1319, Quadrant: 4, Color: yellow, Type: Entry\n", "Time: 1321, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1318, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 1319, Quadrant: 4, Color: yellow, Type: Exit\n", "Time: 1321, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1331, Quadrant: 2, Color: red, Type: Entry\n", "Time: 1332, Quadrant: 2, Color: red, Type: Exit\n", "Time: 1341, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1350, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1383, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1383, Quadrant: 4, Color: red, Type: Exit\n", "Time: 1390, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1395, Quadrant: 4, Color: red, Type: Entry\n", "Time: 1391, Quadrant: 4, Color: red, Type: Exit\n" ] } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "ijmEcqE3Hnnl" }, "execution_count": null, "outputs": [] } ] }