{"id":51152133,"url":"https://github.com/muhammad-fiaz/iris-cv","last_synced_at":"2026-06-26T07:01:33.204Z","repository":{"id":367158554,"uuid":"1279462175","full_name":"muhammad-fiaz/iris-cv","owner":"muhammad-fiaz","description":"A fast computer vision library framework in Rust.","archived":false,"fork":false,"pushed_at":"2026-06-26T05:38:53.000Z","size":769,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-26T06:19:50.681Z","etag":null,"topics":["computer-vision","cv","iris","iris-cv","iris-rust","iris-rust-crate","iris-rust-library","opencv","opencv-rust","rust","rust-crate","rust-lang","rust-library","rust-opencv"],"latest_commit_sha":null,"homepage":"https://muhammad-fiaz.github.io/iris-cv/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muhammad-fiaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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},"funding":{"github":["muhammad-fiaz"],"ko_fi":"muhammadfiaz","custom":["https://pay.muhammadfiaz.com"]}},"created_at":"2026-06-24T17:56:42.000Z","updated_at":"2026-06-26T05:33:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/muhammad-fiaz/iris-cv","commit_stats":null,"previous_names":["muhammad-fiaz/iris","muhammad-fiaz/iris-cv"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/muhammad-fiaz/iris-cv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammad-fiaz%2Firis-cv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammad-fiaz%2Firis-cv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammad-fiaz%2Firis-cv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammad-fiaz%2Firis-cv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muhammad-fiaz","download_url":"https://codeload.github.com/muhammad-fiaz/iris-cv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammad-fiaz%2Firis-cv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34806448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["computer-vision","cv","iris","iris-cv","iris-rust","iris-rust-crate","iris-rust-library","opencv","opencv-rust","rust","rust-crate","rust-lang","rust-library","rust-opencv"],"created_at":"2026-06-26T07:01:02.570Z","updated_at":"2026-06-26T07:01:33.188Z","avatar_url":"https://github.com/muhammad-fiaz.png","language":"Rust","funding_links":["https://github.com/sponsors/muhammad-fiaz","https://ko-fi.com/muhammadfiaz","https://pay.muhammadfiaz.com"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Iris\n\n\u003ca href=\"https://muhammad-fiaz.github.io/iris-cv/\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-muhammad--fiaz.github.io-blue\" alt=\"Documentation\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.rust-lang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Rust-2024_Edition-orange.svg\" alt=\"Rust Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/muhammad-fiaz/iris-cv\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/muhammad-fiaz/iris-cv\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/muhammad-fiaz/iris-cv/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/muhammad-fiaz/iris-cv\" alt=\"GitHub issues\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/muhammad-fiaz/iris-cv/pulls\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-pr/muhammad-fiaz/iris-cv\" alt=\"GitHub pull requests\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/muhammad-fiaz/iris-cv\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/muhammad-fiaz/iris-cv\" alt=\"GitHub last commit\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/muhammad-fiaz/iris-cv\"\u003e\u003cimg src=\"https://img.shields.io/github/license/muhammad-fiaz/iris-cv\" alt=\"License\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/muhammad-fiaz/iris-cv/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/muhammad-fiaz/iris-cv/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/platforms-linux%20%7C%20windows%20%7C%20macos-blue\" alt=\"Supported Platforms\"\u003e\n\u003ca href=\"https://github.com/muhammad-fiaz/iris-cv/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/muhammad-fiaz/iris-cv?label=Latest%20Release\u0026style=flat-square\" alt=\"Latest Release\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pay.muhammadfiaz.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor-pay.muhammadfiaz.com-ff69b4?style=flat\u0026logo=heart\" alt=\"Sponsor\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/sponsors/muhammad-fiaz\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor-💖-pink?style=social\u0026logo=github\" alt=\"GitHub Sponsors\"\u003e\u003c/a\u003e\n\u003ca href=\"https://hits.sh/github.com/muhammad-fiaz/iris-cv/\"\u003e\u003cimg alt=\"Hits\" src=\"https://hits.sh/github.com/muhammad-fiaz/iris-cv.svg\"/\u003e\u003c/a\u003e\n\n\u003cp\u003e\u003cem\u003eA fast computer vision library framework in Rust.\u003c/em\u003e\u003c/p\u003e\n\n\u003cb\u003e\u003ca href=\"https://muhammad-fiaz.github.io/iris-cv/\"\u003eDocumentation\u003c/a\u003e |\n\u003ca href=\"https://muhammad-fiaz.github.io/iris-cv/api\"\u003eAPI Reference\u003c/a\u003e |\n\u003ca href=\"CONTRIBUTING.md\"\u003eContributing\u003c/a\u003e\u003c/b\u003e\n\n\u003c/div\u003e\n\nA Rust-powered, cross-platform computer vision and deep learning library designed with a clean, modular, library-first architecture. Completely native with zero external C dependencies.\n\n**If you love `Iris`, make sure to give it a star!**\n\n\u003e [!NOTE]\n\u003e This project is still in active development. APIs and features may change before the first stable release.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eTable of Contents\u003c/strong\u003e (click to expand)\u003c/summary\u003e\n\n- [Prerequisites \u0026 Supported Platforms](#prerequisites--supported-platforms)\n- [Features of Iris](#features-of-iris)\n- [Installation](#installation)\n  - [Build from Source](#build-from-source)\n- [Library Usage](#library-usage)\n- [Examples](#examples)\n- [Cargo Features](#cargo-features)\n- [License](#license)\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eFeatures of Iris\u003c/strong\u003e (click to expand)\u003c/summary\u003e\n\n| Feature | Description |\n|---------|-------------|\n| **Image Representation** | Custom `Image\u003cB\u003e` wrapping a Burn `Tensor\u003cB, 3\u003e` for high performance. |\n| **Image I/O** | Native load and save support for PNG, JPEG, GIF, QOI, ICO, BMP, TIFF, WebP, APNG. |\n| **Color Conversions** | RGB, Grayscale, HSV, HLS, XYZ, LAB, YUV, YCrCb conversions with channel split/merge. |\n| **Geometric Operations** | Warp, crop, flip, rotate, scale, affine/perspective transforms, remapping, resize. |\n| **Filtering \u0026 Blur** | Box, Gaussian, median, bilateral, separable, custom kernel convolution (filter2D). |\n| **Edge Detection** | Canny, Sobel, Scharr, Laplacian, LoG (Laplacian of Gaussian). |\n| **Thresholding** | Binary, Otsu's, Triangle, adaptive (mean/Gaussian) thresholding. |\n| **Histogram** | Histogram equalization, CLAHE, apply LUT, compare histograms (4 methods), per-channel operations. |\n| **Morphological Operations** | Dilation, erosion, opening, closing, gradient, top/bottom hat, custom kernels. |\n| **Contours \u0026 Shapes** | Suzuki-Abe boundary tracking, convex hull, moments, bounding boxes, polygon approximation, distance transform. |\n| **Drawing Canvas** | Lines, rectangles, circles, ellipses, polygons, arrows, markers, text rendering with bitmap font. |\n| **Noise Generation** | Gaussian, salt-and-pepper, and speckle noise with custom parameters. |\n| **Feature Detection** | ORB feature detection (FAST corners + BRIEF descriptors), template matching (6 methods). |\n| **Dense Optical Flow** | Farneback multi-scale Gaussian pyramid flow estimation. |\n| **Sparse Optical Flow** | Lucas-Kanade pyramidal feature tracking. |\n| **Object Tracking** | MOSSE correlation filter tracker. |\n| **Video Module** | Read/write video files, frame iteration, GIF/APNG/JPEG/QOI/PNG output, metadata extraction. |\n| **DNN Inference** | Native ONNX, Safetensors, and Burn weight loading, NMS. |\n| **ArUco \u0026 QR Detection** | Marker tracking, pose estimation, and QR/barcode reader pipelines. |\n| **Image Utilities** | addWeighted blending, convert_scale_abs, copy_to with mask, normalize, in_range masking. |\n| **WGPU \u0026 GPU Acceleration** | Native acceleration across CUDA, Vulkan, Metal, and WGPU through Burn's backend. |\n| **Parallel Processing** | Rayon-powered parallelism across filters, gradients, morphology, thresholding, and warping. |\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ePrerequisites \u0026 Supported Platforms\u003c/strong\u003e (click to expand)\u003c/summary\u003e\n\n## Prerequisites\n\nBefore installing Iris, ensure you have:\n\n- **Rust**: v1.85.0+ (Rust 2024 Edition). Install via [rustup](https://rustup.rs/):\n  ```bash\n  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n  ```\n- **Cargo**: Comes bundled with Rust. Verify with `cargo --version`.\n\n## Supported Platforms\n\nIris supports a wide range of platforms and architectures:\n- **Windows 10+ / 11+**\n- **Linux** (Vulkan/CUDA acceleration support)\n- **macOS** (Metal acceleration support)\n\n\u003c/details\u003e\n\n---\n\n## Installation\n\n### Build from Source\n```bash\ngit clone https://github.com/muhammad-fiaz/iris-cv.git\ncd iris-cv\ncargo build --release\n```\n\n---\n\n## Library Usage\n\nTo use `iris` in your Rust project, run:\n\n```bash\ncargo add iris-cv\n```\n\nOr add it directly to your `Cargo.toml` under dependencies:\n\n```toml\n[dependencies]\niris-cv = \"0.0.0\"\n```\n\n### Development Version (Git)\n\nTo use the latest development branch directly from GitHub, run:\n\n```bash\ncargo add iris-cv --git https://github.com/muhammad-fiaz/iris-cv\n```\n\nOr add the following to your `Cargo.toml`:\n\n```toml\n[dependencies]\niris-cv = { git = \"https://github.com/muhammad-fiaz/iris-cv\" }\n```\n\nIn your Rust code:\n\n```rust\nuse iris::prelude::*;\nuse burn::backend::wgpu::{Wgpu, WgpuDevice};\n\nfn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    type Backend = Wgpu;\n    let device = WgpuDevice::default();\n\n    // 1. Open an image\n    let img: Image\u003cBackend\u003e = Image::open(\"assets/images/gradient.png\", \u0026device)?;\n    println!(\"Loaded image with shape: {:?}\", img.shape());\n\n    // 2. Convert to grayscale and apply Canny edges\n    let gray = img.grayscale()?;\n    let edges = gray.canny(50.0, 150.0)?;\n\n    // 3. Draw bounding box and save\n    let mut canvas = edges.to_rgb()?;\n    canvas = canvas.draw_rectangle(\n        Rect::new(10, 10, 100, 100),\n        Scalar::new(1.0, 0.0, 0.0, 1.0),\n        2\n    )?;\n    canvas.save(\"output.png\")?;\n\n    Ok(())\n}\n```\n\n---\n\n## Examples\n\nRun any example to see Iris in action. All examples require the `wgpu` feature:\n\n```bash\ncargo run --example image_loading --features wgpu\ncargo run --example canny --features wgpu\ncargo run --example filters --features wgpu\ncargo run --example drawing --features wgpu\ncargo run --example color_processing --features wgpu\ncargo run --example image_utils --features wgpu\ncargo run --example contours --features wgpu\ncargo run --example morphology --features wgpu\ncargo run --example threshold --features wgpu\ncargo run --example optical_flow --features wgpu\ncargo run --example tracking --features wgpu\ncargo run --example qr_detection --features wgpu\ncargo run --example face_recognition --features wgpu\ncargo run --example onnx_inference --features wgpu\ncargo run --example photo_processing --features wgpu\ncargo run --example segmentation --features wgpu\ncargo run --example kmeans_clustering --features wgpu\n```\n\n---\n\n## Cargo Features\n\n`Iris` provides several features to customize compilation and backend acceleration:\n\n| Feature | Description | Enabled by Default |\n|---|---|---|\n| `ndarray` | Lightweight, pure CPU ndarray execution backend (used for tests). | **Yes** |\n| `safetensors` | Enables native loading of model weights in `.safetensors` format. | **Yes** |\n| `wgpu` | Enables the WGPU backend support for hardware-accelerated deep learning via Burn. | No |\n| `gpui` | Enables GPU-accelerated desktop UI window rendering using Zed's GPUI framework. | No |\n| `cuda` | Enables CUDA acceleration for the Burn backend. | No |\n| `tch` | Enables LibTorch backend acceleration. | No |\n\n\u003e **Note**: `rayon` is a required dependency for parallel processing — it is always included.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammad-fiaz%2Firis-cv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuhammad-fiaz%2Firis-cv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammad-fiaz%2Firis-cv/lists"}