{"id":46236544,"url":"https://github.com/seanwevans/opencv-playground","last_synced_at":"2026-03-03T19:10:04.659Z","repository":{"id":323898043,"uuid":"1095147816","full_name":"seanwevans/opencv-playground","owner":"seanwevans","description":"an opencv playground","archived":false,"fork":false,"pushed_at":"2025-11-12T18:09:04.000Z","size":135,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-12T19:07:17.206Z","etag":null,"topics":["image-processing","opencv"],"latest_commit_sha":null,"homepage":"https://seanwevans.github.io/opencv-playground/","language":"JavaScript","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/seanwevans.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-12T16:49:50.000Z","updated_at":"2025-11-12T18:09:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/seanwevans/opencv-playground","commit_stats":null,"previous_names":["seanwevans/opencv-playground"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/seanwevans/opencv-playground","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanwevans%2Fopencv-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanwevans%2Fopencv-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanwevans%2Fopencv-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanwevans%2Fopencv-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanwevans","download_url":"https://codeload.github.com/seanwevans/opencv-playground/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanwevans%2Fopencv-playground/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30056056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["image-processing","opencv"],"created_at":"2026-03-03T19:10:03.987Z","updated_at":"2026-03-03T19:10:04.654Z","avatar_url":"https://github.com/seanwevans.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenCV Playground\nhttps://seanwevans.github.io/opencv-playground/\n\nfrontend for **OpenCV.js**. Load an image, stack OpenCV operations, tweak parameters with live previews, and export the pipeline or the processed image.\n\n---\n\n## Using the App\n- **Open**: pick a file or drag‑and‑drop into the *Original* panel\n- **Live**: when enabled, the pipeline re-runs on every parameter change\n- **Apply**: run the pipeline once (useful with Live off)\n- **Compare**:\n  - *Slider*: drag divider; hold **Space** to show the unprocessed original\n  - *Side‑by‑side*: shows original and processed in separate panels\n- **Download**: choose **PNG/JPEG**, then **Download** to save the processed image (no overlays)\n- **Export**: copy the pipeline JSON to clipboard\n- **Import**: paste pipeline JSON to restore a workflow\n\n### Supported Operations\n- **Grayscale**\n- **GaussianBlur** (kernel, sigma)\n- **Bilateral** *(RGBA → RGB → filter → RGBA)*\n- **Canny** (t1, t2)\n- **Threshold** (binary, inv, trunc, tozero)\n- **CLAHE** (clip limit, tile grid)\n- **Morphology** (erode/dilate, kernel, iterations)\n- **Rotate** (angle, border policy)\n- **Resize** (scale, interpolation)\n- **Sharpen** (unsharp mask: amount, radius)\n- **BrightnessContrast** (α, β)\n- **Gamma** (per‑channel LUT; preserves alpha)\n- **MedianBlur** *(RGBA → RGB → filter → RGBA)*\n- **BoxBlur**\n- **Sobel** (edge magnitude)\n- **Laplacian**\n- **EqualizeHist** (Y channel)\n- **HSVAdjust** (hue shift, sat×, val×)\n- **Invert** (RGB; alpha preserved)\n- **Flip** (H, V, HV)\n- **AdaptiveThreshold** (mean/gaussian; block; C)\n- **ColorMap** (Jet/Hot/Viridis/Turbo/…)\n- **BlendWithOriginal** (mix processed with original)\n\n---\n\nRun:\n```bash\nnpm run dev\n```\nBuild:\n```bash\nnpm run build\n```\n\n---\n\n## Add a New Op\nEach operation lives in `OP_REGISTRY`. Minimal example:\n```js\nconst OP_REGISTRY = {\n  MyOp: {\n    schema: { strength: { type: \"float\", label: \"Strength\", min: 0, max: 1, step: 0.01, default: 0.5 } },\n    apply: (cv, src, p, ctx) =\u003e {\n      // src is RGBA cv.Mat (DO NOT delete)\n      // return a NEW cv.Mat; delete all temporaries you create\n      const out = new cv.Mat();\n      cv.addWeighted(src, 1 + p.strength, src, -p.strength, 0, out);\n      return out;\n    },\n  },\n  // ...other ops\n};\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanwevans%2Fopencv-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanwevans%2Fopencv-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanwevans%2Fopencv-playground/lists"}