{"id":20054726,"url":"https://github.com/rajjitlai/virtualpaint","last_synced_at":"2026-05-12T18:05:38.347Z","repository":{"id":155746704,"uuid":"553583803","full_name":"rajjitlai/VirtualPaint","owner":"rajjitlai","description":"An OpenCV Project on Virtual Paint using C++","archived":false,"fork":false,"pushed_at":"2023-01-30T17:26:34.000Z","size":24625,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-12T21:32:05.029Z","etag":null,"topics":["computer-vision","cpp","opencv","opencv-cpp","virtual-paint"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajjitlai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-18T12:47:11.000Z","updated_at":"2023-01-29T17:17:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"759321fd-b684-40b3-8a9d-6e298fdb5d82","html_url":"https://github.com/rajjitlai/VirtualPaint","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajjitlai%2FVirtualPaint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajjitlai%2FVirtualPaint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajjitlai%2FVirtualPaint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajjitlai%2FVirtualPaint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajjitlai","download_url":"https://codeload.github.com/rajjitlai/VirtualPaint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241483339,"owners_count":19970070,"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","cpp","opencv","opencv-cpp","virtual-paint"],"created_at":"2024-11-13T12:42:52.923Z","updated_at":"2026-05-12T18:05:38.340Z","avatar_url":"https://github.com/rajjitlai.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VirtualPaint 🎨\n\nA high-performance C++ application that leverages OpenCV for real-time color detection and virtual drawing. Track physical objects in the air and turn your webcam into a digital canvas!\n\n![Virtual Paint Demo](assets/virtual_paint_demo.png)\n\n## 🌟 Overview\n\n**VirtualPaint** is a computer vision project developed using C++ and the OpenCV library. It uses HSV (Hue, Saturation, Value) color space tracking to identify specific objects in a video feed and translate their movement into digital brushstrokes on the screen.\n\n### Key Features\n- **Real-Time Tracking**: Ultra-low latency tracking using optimized C++ backend.\n- **Multi-Color Support**: Pre-configured to detect Purple, Green, and Orange markers.\n- **Dynamic Canvas**: Draws continuous trails that follow the tip of your tracked object.\n- **Customizable**: Easy-to-tweak HSV ranges for adding support for any custom color.\n\n## 🛠️ Technical Details\n\n- **Language**: C++\n- **Framework**: OpenCV 4.x\n- **Core Logic**:\n  - `findColor()`: Converts BGR frames to HSV and applies masks for target colors.\n  - `getContours()`: Identifies the largest object and locates its topmost point for precision drawing.\n  - `drawOnCanvas()`: Maintains a persistent vector of points to render the \"paint\" across frames.\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Visual Studio 2019 or newer.\n- OpenCV 4.x installed and configured in your system environment.\n\n### Setup\n1. Clone the repository.\n2. Open `VirtualPaint.sln` in Visual Studio.\n3. Ensure your project properties are correctly pointing to your OpenCV `include` and `lib` directories.\n4. Build and run in **x64 Release** mode for best performance.\n\n## ⚖️ License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n---\n**Maintained by**: Rajjit Laishram  \n**Created**: October 2022  \n**Updated**: April 2026\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajjitlai%2Fvirtualpaint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajjitlai%2Fvirtualpaint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajjitlai%2Fvirtualpaint/lists"}