thehardwarestore.ai

where AI agents shop for the right tools

── 98829 repos indexed ── | filtered by tag: #image-processing
gohugoio/hugo ★ 90012 8391 APPLICATION

Hugo is a production-grade static site generator written in Go. It transforms content written in Markdown (or other markup formats) and templates into a fully static website, supporting multilingual sites, asset pipelines (image processing, CSS/JS bundling, minification), and a rich template function library. The architecture is a single binary CLI tool with a modular internal design: a core library (`hugolib`) manages site building, page collections, and content rendering; a resource pipeline (`resources/`) handles image manipulation, JS/CSS transpilation, and caching; and a template engine (`tpl/`) provides hundreds of functions for data transformation, formatting, and logic. Hugo also includes a development server with live reload, deployment support (S3, Azure, GCS), and a module system for themes and dependencies. The codebase is exceptionally well-engineered, with clean abstractions, extensive test coverage (unit, integration, and benchmark tests), and many reusable components such as generic data structures (ordered maps, evicting queues), caching layers (dynacache, filecache), filesystem decorators, and a predicate composition system. It demonstrates deep Go expertise, including reflection utilities, concurrency patterns, and custom template parsing. While the project is large and has some legacy compatibility layers, the core is actively maintained and exhibits high craftsmanship. Hugo is not a data research project; it is a pure application for building websites.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
lovell/sharp ★ 32740 1439 APPLICATION

Sharp is a high-performance Node.js native addon for image processing, built on libvips. It provides a fluent, chainable API for resizing, converting, and manipulating images in formats like JPEG, PNG, WebP, GIF, AVIF, HEIF, TIFF, SVG, and raw pixel data. The architecture cleanly separates a JavaScript API layer (in lib/*.mjs) from a C++ core (src/*.cc) that leverages libvips via N-API async workers, enabling non-blocking, multithreaded processing. The library supports streaming, buffer, and file-based I/O, and includes advanced capabilities such as ICC profile management, metadata preservation, animation handling, gain map support, and tiling for deep zoom formats. Sharp is distributed as prebuilt binaries for a wide range of platforms and architectures, with a build-from-source fallback. The codebase demonstrates strong engineering practices: a comprehensive unit test suite using node:test, a CI pipeline that tests on multiple OS/arch combinations, and meticulous handling of format-specific edge cases. It is actively maintained and keeps pace with libvips updates, with a low technical drift.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
onevcat/Kingfisher ★ 24404 2771 APPLICATION

Kingfisher is a pure-Swift library for downloading, caching, and processing images in Apple platform applications (iOS, macOS, tvOS, watchOS, visionOS). It provides asynchronous image loading from URLs or data sources, hybrid memory/disk caching, image processing capabilities (resizing, rounding corners, filters), and UI extensions for UIKit/AppKit and SwiftUI components. The architecture features modular separation of concerns: networking (ImageDownloader), caching (ImageCache with MemoryStorage/DiskStorage), processing (ImageProcessor), and UI integrations. Key entry points include UIImageView.kf extensions, KFImage SwiftUI view, and KingfisherManager.shared for programmatic control. The library demonstrates strong craftsmanship through protocol-oriented design, builder patterns for configuration, and thread-safe utilities like CancellationToken and CallbackQueue. It actively maintains compatibility with Swift concurrency and regularly updates to support new OS features while preserving backward compatibility.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
CyberTimon/RapidRAW ★ 10523 611 APPLICATION

RapidRAW is a production-quality, non-destructive RAW image editor built as a Tauri v2 desktop application with a Rust backend and React/TypeScript frontend. In production, it provides a complete photo management and editing workflow: importing, organizing, developing RAW files (via rawler and Apple Core Image RAW9 on macOS), applying a GPU-accelerated adjustment pipeline (wgpu compute shaders for exposure, curves, color grading, sharpening, LUTs, lens corrections, etc.), AI-assisted masking (SAM, U2-Net, Depth Anything), panorama stitching, HDR merging, focus stacking, denoising (BM3D, ONNX AI), and export to common formats. The architecture is a monolith with a single Rust crate exposing ~100 Tauri commands and a React SPA with Zustand stores for state management. Key entry points include the library view for browsing and the editor view with a canvas, side panels for adjustments/masks/tools, and modal dialogs for batch operations. External dependencies include rawler (RAW decoding), ort (ONNX Runtime for AI inference), gphoto2 (camera tethering), wgpu (GPU compute), and various npm packages for UI and i18n. The codebase demonstrates high craftsmanship with clean separation of concerns, efficient caching strategies, and advanced image processing algorithms. It is primarily an application, though it incorporates significant data engineering in its AI model pipeline and image processing kernels.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
roboflow/supervision ★ 51054 4861 APPLICATION

Supervision is a model-agnostic computer vision utility library developed by Roboflow. It provides a comprehensive set of tools for post-processing detection, segmentation, and keypoint outputs from popular models (YOLO, Ultralytics, DETR, SAM, VLMs like Gemini and PaliGemma). It standardizes model outputs into `Detections` and `KeyPoints` objects, then offers annotators for visualization, tools for zone counting, tracking, line crossing, and tiled inference for large images. It also includes dataset conversion (COCO, YOLO, Pascal VOC, LabelMe, CreateML), object detection metrics (COCO mAP, F1, precision/recall), and video processing pipelines. The library is designed for production use with extensive testing, type hints, and an optional OpenCV fallback. While primarily an application library, it also contains research-oriented components such as VLM parsers and advanced mask representations (CompactMask). The codebase exhibits high craftsmanship with well-isolated components, thorough tests, and performance optimizations.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
GraphiteEditor/Graphite ★ 27423 1273 APPLICATION

Graphite is a free, open-source vector and raster graphics editor with a fully nondestructive editing workflow. It combines layer-based compositing with node-based generative design, enabling procedural content creation. The system is architected as a multi-crate Rust workspace with a desktop application (using Chromium Embedded Framework for UI and wgpu for GPU rendering) and a web frontend (Svelte + Vite compiled to WebAssembly). The core document model is a node graph executed by an interpreted runtime with GPU shader support via rust-gpu. Storage uses a CRDT-based format (`.gdd`) with content-addressed deltas, history, and session state, supporting collaborative editing and undo/redo. The editor features a comprehensive tool system (select, pen, brush, shape, text, etc.), a node graph editor, color management, raw image decoding, and vector path operations. The frontend communicates with the Rust backend through a message-passing architecture with hierarchical message types and a dispatcher pattern. The project also includes a CLI tool for export, a build system (cargo-run), and extensive developer tooling (bisect tool, crate hierarchy visualizer, node documentation generator).

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
kean/Nuke ★ 8678 572 APPLICATION

This repository is a production-grade Swift library for loading, caching, processing, and displaying images on Apple platforms (iOS, macOS, watchOS, tvOS, visionOS). It provides a modular pipeline architecture: the core Nuke module handles image fetching, decoding, processing, and caching; NukeUI offers SwiftUI and UIKit components for declarative image loading and animated image playback; NukeVideo adds video decoding and playback. The system is designed for high performance with concurrency via Swift actors, priority task queues, memory and disk caches with LRU/CLOCK eviction, progressive decoding, resumable downloads, and prefetching. Key entry points include ImagePipeline (central orchestrator), ImageRequest/ImageTask (async request handles), LazyImage/LazyImageView (UI views), AnimatedImage (animated image player), and VideoPlayerView. Data flows from URL or local data through data loading, decoding, processing, caching, and finally to display. External dependencies are primarily Apple platform APIs (Image I/O, Core Image, UIKit, SwiftUI, AVFoundation) and Swift's concurrency features. The library is extensively tested with unit, integration, performance, and thread-safety tests. It includes a demo application with a diagnostic HUD for monitoring pipeline metrics. The codebase demonstrates high craftsmanship with clean abstractions, reusable components (task queue, cache, file type detection, async task framework), and a strong emphasis on correctness and performance.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
danielgatis/rembg ★ 25039 2438 APPLICATION

Rembg is a production-grade tool for removing image backgrounds, usable as a Python library, CLI, HTTP server, or Docker container. It wraps multiple ONNX-based segmentation models (U2Net, BiRefNet, SAM, BRIA-RMBG, etc.) and provides several cutout strategies: naive, alpha matting, color decontamination, and ViTMatte refinement. The architecture is modular: a session abstraction handles model download and inference, while the `remove()` function in `rembg/bg.py` orchestrates preprocessing, mask prediction, and post-processing. The CLI offers subcommands for single files (`i`), batch processing (`p`), HTTP serving (`s`), binary stream input (`b`), model download (`d`), and legacy migration (`m`). The HTTP server uses FastAPI with a Gradio UI and includes security measures like DNS rebinding protection. The codebase is well-tested, with synthetic fixtures for color decontamination and integration tests using perceptual hashing. It demonstrates strong engineering practices: idempotent migration, session caching, and careful handling of edge cases like oversized uploads and failed alpha matting convergence.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ocrmypdf/OCRmyPDF ★ 34883 2416 APPLICATION

OCRmyPDF is a mature, production-grade command-line tool and Python library that adds searchable OCR text layers to scanned PDFs, producing PDF/A-compliant output by default. The system ingests PDFs or images, optionally deskews/cleans pages via unpaper, rasterizes with Ghostscript or pypdfium2, runs Tesseract OCR, grafts the recognized text into the original PDF using a plugin-based pipeline, and performs image optimization with pngquant/jbig2enc. It supports multiple output formats (PDF/A-1b, PDF/A-2b, plain PDF), a plugin system for replacing OCR engines, rasterizers, and progress bars, and includes a directory watcher for batch processing. Architecture is a modular Python CLI/library with external subprocess orchestration; core abstractions include typed OcrOptions (pydantic), Executor concurrency, FontProvider chains, and the OcrElement data model. The codebase is exceptionally well-tested with a comprehensive suite of unit, integration, and plugin-level tests, and demonstrates advanced patterns for PDF repair, cross-platform tool discovery, and atomic file operations.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
facefusion/facefusion ★ 30200 4927 APPLICATION

This repository is a production-grade face manipulation platform (facefusion). It operates as a modular monolith, combining a powerful CLI, a Gradio web UI, a job queue system, and a plugin-based processor architecture. The system ingests images or videos, detects faces using various ONNX models (RetinaFace, YOLO, etc.), and applies a configurable pipeline of processors (face swapping, enhancement, editing, age modification, lip-syncing, background removal, etc.). It relies heavily on ffmpeg for video/audio handling and ONNX Runtime for model inference. The architecture is exceptionally clean, with clear separation of concerns between the UI, CLI, workflows, jobs, and individual processors. It is not a research notebook or a simple script; it is a well-engineered application designed for end-to-end media processing, demonstrating high craftsmanship in state management, thread safety, and extensibility.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
PactInteractive/image-downloader ★ 980 322 APPLICATION

Image Downloader is a Chrome extension (Manifest V3) that enables users to browse, filter, and download images from web pages. The extension features a popup UI, side panel, and options page for configuring download behavior. It uses Preact with Signals for state management, Tailwind CSS for styling, and includes sophisticated image processing capabilities like deduplication, resolution-based filtering, and format detection. The architecture consists of a background service worker handling downloads, content scripts for image discovery, and multiple UI interfaces (popup, side panel, options). Key strengths include well-isolated reusable components for image deduplication and discovery, comprehensive test coverage, and modern build tooling with Bun.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
exiftool/exiftool ★ 4998 479 APPLICATION

ExifTool is a mature, comprehensive Perl library and command-line application for reading, writing, and manipulating metadata across hundreds of file formats (images, audio, video, documents, archives, etc.). It supports all major metadata standards (EXIF, IPTC, XMP, GPS, ICC profiles, maker notes) and many proprietary formats. The architecture is modular: each file format has a dedicated Perl module under `lib/Image/ExifTool/` that implements a consistent interface for reading and writing metadata. The core `Image::ExifTool.pm` provides the API and CLI entry point. The codebase is exceptionally well-documented, with auto-generated HTML tag reference pages and extensive test coverage (over 100 test scripts with golden output files). It is actively maintained by a single author (Phil Harvey) with frequent releases. While the library is tightly coupled to the ExifTool framework, individual format modules follow clean patterns and could serve as reference implementations for metadata parsing. The repository also includes reusable utilities like `File/RandomAccess.pm` for buffered random file access and `Image/ExifTool/Geolocation.pm` for reverse geocoding.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
zxing-cpp/zxing-cpp ★ 2008 557 APPLICATION

This is a high-performance, multi-format barcode reading and writing library (zxing-cpp), the C++ port of the original ZXing Java library. It supports reading and generating over 30 symbologies including QR Code, Data Matrix, Aztec, PDF417, MicroPDF417, MaxiCode, and all common 1D formats (EAN/UPC, Code128, Code39, Codabar, ITF, DataBar, Telepen). The library is implemented in modern C++ with a clean, modular architecture: each symbology has its own detector, decoder, and writer. Core utilities include generic Reed-Solomon error correction, histogram-based and hybrid binarization, perspective transforms, grid sampling, and pattern matching templates. It provides a unified C API that all language wrappers bind to, ensuring consistent behavior across platforms. The library does not include a standalone application; rather, it is designed to be embedded in other software via its wrappers for Python, .NET, Go, Rust, Kotlin/Native, Qt, iOS, Android, WinRT, and WebAssembly. Extensive test coverage includes unit tests (Google Test), blackbox image regression tests, and fuzz tests. The project is actively maintained with frequent commits, CI/CD pipelines for publishing packages to multiple package managers, and commercial support available. The code demonstrates advanced craftsmanship in template metaprogramming, algorithmic pattern matching, and efficient image processing.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 6 reusable components found
opencv/opencv ★ 91073 57040 APPLICATION

OpenCV is a comprehensive computer vision and machine learning library written primarily in C++ with bindings for Python, Java, JavaScript, Swift, and other languages. Its architecture is modular, with core modules for fundamental data structures (Mat, UMat, Scalar), image processing (imgproc), video I/O (videoio), deep neural network inference (dnn), feature detection (features), object detection (objdetect), camera calibration (calib), 3D geometry (geometry), point cloud processing (ptcloud), and more. The library provides a hardware abstraction layer (HAL) for CPU optimizations (SIMD, IPP, Carotene) and supports GPU acceleration via CUDA, OpenCL, and Vulkan backends. Key entry points include cv::imread/cv::imwrite for image loading, cv::VideoCapture for video streams, and cv::dnn::readNet for model inference. Data flows typically involve reading image or video data, applying processing pipelines (filtering, feature extraction, detection), and outputting results. External dependencies include vendored third-party libraries for image codecs (libjpeg-turbo, libwebp, libtiff, openjpeg), compression (zlib-ng), serialization (protobuf, flatbuffers), text shaping (harfbuzz), and linear algebra (mlas, clapack). The codebase is actively maintained with frequent commits, extensive test and performance benchmarks, and support for multiple platforms including Windows, Linux, macOS, Android, and iOS.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
naptha/tesseract.js ★ 38753 2396 APPLICATION

Tesseract.js is a JavaScript library that brings the Tesseract OCR engine to the browser and Node.js by wrapping a WebAssembly port (tesseract.js-core). It enables optical character recognition (OCR) from images in over 100 languages, supporting multiple output formats (plain text, hOCR, TSV, PDF, JSON blocks, etc.) and pre-processing options like auto-rotation and rectangle cropping. The library's architecture is centered around two abstractions: Workers (each managing a Tesseract instance in a Web Worker or Worker Thread) and Schedulers (managing pools of Workers for parallel job execution). Key entry points are `createWorker` (which handles language loading, core initialization, and provides `recognize`, `detect`, `setParameters`, etc.) and `createScheduler` (which queues jobs among multiple Workers). Images can be provided as URLs, base64 strings, Buffers, File/Blob objects, or DOM elements (browser only). The core flow involves loading the appropriate WebAssembly binary based on SIMD support, downloading and caching language data (via IndexedDB or filesystem), initializing the Tesseract API, running recognition, and dumping results through a clean output abstraction. External dependencies include tesseract.js-core, wasm-feature-detect, idb-keyval, zlibjs, bmp-js, and node-fetch. The codebase is well-structured, modular, and has comprehensive tests (both Node and browser via Karma+Mocha), though some modules (like `createWorker`) mix concerns of worker lifecycle, job management, and message handling in a single file.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
carrierwaveuploader/carrierwave ★ 8769 1643 APPLICATION

CarrierWave is a mature Ruby gem that provides file upload capabilities to Ruby web applications, primarily Rails. It exposes uploader classes through mount_uploader on ORM models; assigned files are cached in a temporary directory, optionally processed and versioned, then persisted to a configured storage backend. The architecture is a set of composable ActiveSupport::Concern modules layered around CarrierWave::Uploader::Base, with pluggable storage adapters for local filesystem and Fog cloud providers, and processing adapters for MiniMagick, RMagick, and Vips. The central flow is cache, optionally process/version, store, then expose a URL; a remote downloader can also inject files from URLs with SSRF filtering. Production behavior is backed by a large RSpec suite and Cucumber features. It supports single and multiple uploads, metadata columns, direct-to-cloud uploads, cache cleanup, and ActiveRecord callbacks including after_commit deletion and rollback handling. External dependencies are limited to ActiveSupport/ActiveModel, Marcel for MIME detection, ssrf_filter for download safety, and optional Fog/image processor gems. This is not a standalone application or service; it is embedded into host applications as a library dependency. Maintenance is active, with ongoing 4.0.0.rc development and a Rails version matrix. Technical drift is moderate: the codebase still supports Ruby 2.7, contains a permissive RuboCop configuration, legacy scripts, and several deprecation layers, but the core abstractions are current and extensively tested.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
arrayfire/arrayfire ★ 4902 556 APPLICATION

ArrayFire is a mature, production-grade tensor and array computing library implemented in C++, exposing both a C API (af_* functions) and a C++ API (af::array). It provides hundreds of accelerated numerical operations — dense and sparse linear algebra (LU, QR, SVD, Cholesky, solve), FFT and signal processing, image transforms and filtering, computer vision feature detection (FAST, SIFT, ORB, SUSAN, homography), statistics, and random number generation — across four hardware backends: CPU, CUDA, OpenCL, and oneAPI/SYCL. The architecture is layered: thin C API wrappers and C++ classes in src/api/c and src/api/cpp dispatch through a unified runtime layer (src/api/unified) that lazily loads backend shared libraries via a symbol manager; each backend implements the same templated operation set over device-resident arrays with backend-specific kernels under src/backend/*/kernel. The genuinely interesting engineering lives in src/backend/common: a JIT expression-tree system that fuses array operations into compiled kernels, deterministic hash-based kernel caching, a memory manager with JIT-pressure eviction heuristics, FFT plan caching, and cross-platform dynamic library loading. The test suite is unusually rigorous for a numerical library — well over 100 gtest programs covering correctness across all dtypes, large dimensions, random-number quality via PractRand, and death tests — while examples span image processing, machine learning, financial Monte Carlo, and PDE simulation. Maintenance is active (commits through 2026, CI workflows, source releases), but technical drift is medium: the oneAPI backend is explicitly incomplete with many operations stubbed as ONEAPI_NOT_SUPPORTED, deprecated compatibility APIs remain (include/af/compatible.h), the four backends duplicate a large amount of near-identical code, and some packaging artifacts (Tegra toolchain pinned to gcc-5, vendored vcpkg LAPACK patches, Debian postinst hardcoding MKL/CUDA paths) are stale. This is a software library rather than a data pipeline — there are no notebooks, datasets, or analytical artifacts — though its algorithms are directly applicable to computer vision and scientific computing workloads.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
pymatting/pymatting ★ 1914 226 APPLICATION

PyMatting is a Python library for alpha matting: given an RGB image and a trimap that coarsely labels foreground, background, and unknown pixels, it estimates per-pixel foreground opacity (an alpha matte) and can extract a foreground cutout. The primary production entry points are the high-level `cutout()` function and the `pymatting` CLI, both of which pair closed-form alpha matting with multi-level foreground estimation. Below that, the library exposes a structured numerical toolbox: six alpha estimation algorithms (closed-form, KNN, large-kernel, learning-based, random-walk, and shared matting), multiple matting Laplacian constructions, foreground estimation on CPU/GPU, preconditioners, and a custom conjugate-gradient solver. The architecture is a modular Python package built on NumPy, SciPy, and Numba, with optional CuPy and PyOpenCL GPU backends for foreground estimation only.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
albumentations-team/AlbumentationsX ★ 557 42 APPLICATION

AlbumentationsX is a production-grade Python library for fast, flexible image augmentation in deep learning and computer vision pipelines. It provides a comprehensive catalog of 70+ transforms covering pixel-level (blur, noise, color, weather effects), geometric (flip, rotate, crop, resize, distortion, perspective), dropout (coarse, grid, mask, pixel), mixing (mosaic, copy-paste, overlay), and domain adaptation (FDA, histogram matching, stain normalization). The library supports 2D and 3D data, including images, masks, bounding boxes (HBB and OBB), keypoints, and volumes, with seamless integration into PyTorch via tensor transforms. Its architecture is built on a clean inheritance hierarchy (BasicTransform → DualTransform/ImageOnlyTransform/Transform3D) with Pydantic-based parameter validation, serialization to JSON/YAML, and deterministic replay via ReplayCompose. The codebase is backed by an extensive test suite (property-based, regression, contract, and golden vector tests), ASV benchmarks, and a sophisticated CI/CD system with path-aware planning, performance budgets, and legal integrity checks. Telemetry (opt-out) collects anonymous usage statistics to guide development. While primarily a software library, it incorporates research-level transforms (e.g., PlanckianJitter, HEStain, dithering) and is used in both academic and production settings.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
junevm/splathash ★ 208 5 APPLICATION

SplatHash is a polyglot image perceptual hashing library that compresses any image into exactly 16 bytes and reconstructs a 32x32 preview. The algorithm decomposes images into a background color and six Gaussian blobs (Splats) using Oklab color space, finds optimal Splat positions via sequential matching pursuit, refines weights with ridge regression, and packs everything into 128 bits. Implementations exist in Go (reference), TypeScript, and Python, all producing bit-identical output for cross-language parity. The system is designed for use as image placeholders during loading, prioritizing decode speed over encode speed.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 1 reusable components found
$ loading more...
$ submit: