{"id":15019159,"url":"https://github.com/serpentbit/ovl","last_synced_at":"2025-10-24T05:31:14.906Z","repository":{"id":44021255,"uuid":"160234420","full_name":"SerpentBit/ovl","owner":"SerpentBit","description":"🦉 Python Module for real-time computer vision pipelines ","archived":false,"fork":false,"pushed_at":"2023-02-20T13:19:14.000Z","size":1229,"stargazers_count":8,"open_issues_count":5,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-30T23:51:12.644Z","etag":null,"topics":["computer-vision","first","first-robotics-competition","image-processing","object-detection","opencv","opencv-python","ovl","pipeline","python","robotics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SerpentBit.png","metadata":{"files":{"readme":"README.md","changelog":"changelogs/0.2.5.2_to_2020.1.1","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-03T18:17:05.000Z","updated_at":"2023-06-10T14:39:48.000Z","dependencies_parsed_at":"2023-01-24T01:15:39.240Z","dependency_job_id":null,"html_url":"https://github.com/SerpentBit/ovl","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SerpentBit%2Fovl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SerpentBit%2Fovl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SerpentBit%2Fovl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SerpentBit%2Fovl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SerpentBit","download_url":"https://codeload.github.com/SerpentBit/ovl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237918710,"owners_count":19387305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-vision","first","first-robotics-competition","image-processing","object-detection","opencv","opencv-python","ovl","pipeline","python","robotics"],"created_at":"2024-09-24T19:53:05.517Z","updated_at":"2025-10-24T05:31:13.011Z","avatar_url":"https://github.com/SerpentBit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OVL - Object Vision Library\n\n![OVL Logo](https://user-images.githubusercontent.com/45563197/76566629-d4301300-64b5-11ea-9868-40ecde73dcaa.png)\n\nPython Module for Computer Vision Object Tracking and Detection mainly for the FIRST® Robotics Competition Program\n\nOvl support complex yet modular computer vision pipelines that are easy to create and modify.\n\nEasy to create and setup for beginners and flexible for pros\n\n*You can follow up on changes in for the current version in\nthe [changelog folder](https://github.com/1937Elysium/Ovl-Python/tree/master/changelogs)*\n\n## Documentation\n\nThere are multiple code examples [here](https://github.com/1937Elysium/Ovl-Python/tree/master/code%20examples)\n\nDocumentation is available [here](https://ovl.readthedocs.io/)\n\n### Dependencies:\n\nThe following python module dependencies are needed:\n\n- OpenCV\n\n- numpy\n\nThe following python modules are optional for certain features:\n\n- NetworkTables (pyNetworkTables) for `NetworkTableConnection` (installed automatically)\n\nOVL is officially supported for python 3.7+\n\nInstallation:\n\nUsing `pip`:\n\u003cbr\u003e\n`python -m pip install ovl[cv]`\n\nFor the full installation of all features use:\n`python -m pip install ovl[full]`\n\nFor the frc related features use the frc option:\n`python -m pip install ovl[frc]`\n\n\u003e Note that ovl doesn't come with the precompiled version of\n\u003e opencv for python automatically. If you wish to compile opencv for yourself -\n\u003e simply refrain from using the cv flag during installation.\n\u003e `python -m pip install ovl`\n\n## Usage:\n\nThe library uses simple yet highly customizable syntax to create a vision pipeline using the `Vision` object\n\nA pipeline that detects a yellow circle:\n\n```\nimport ovl\n\ntarget_filters = [ovl.percent_area_filter(min_area=0.005),\n                  ovl.circle_filter(min_area_ratio=0.7),\n                  ovl.area_sort()]\n\nthreshold = ovl.Color([20, 100, 100], [55, 255, 255])\n\nyellow_circle = ovl.Vision(threshold=threshold,\n                           target_filters=target_filters,\n                           camera=0,  # open the first connected camera\n                           image_filters=[ovl.gaussian_blur()])\n\nwhile True:\n    image = yellow_circle.get_image()\n    targets, filtered_image = yellow_circle.detect(image)\n    directions = yellow_circle.get_directions(targets, filtered_image)\n\n    print(directions)  # prints out the (x, y) coordinates of the largest target\n\n\n```\n\nThere are more code examples and usages [here](https://github.com/1937Elysium/Ovl-Python/tree/master/code%20examples)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserpentbit%2Fovl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserpentbit%2Fovl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserpentbit%2Fovl/lists"}