This repository implements a comprehensive toolkit for detecting and removing Google DeepMind's SynthID watermark from AI-generated images, primarily targeting Gemini models. It provides multiple bypass versions (V1–V4) that use pure signal-processing techniques—frequency-domain phase scrambling, JPEG degradation, elastic deformation, VAE round-tripping, and cross-color consensus codebook subtraction—to disrupt the embedded watermark while preserving visual fidelity. The codebase includes a drag-and-drop GUI, CLI tools, batch processing scripts, and a human-in-the-loop calibration workflow. It also contains extensive watermark investigation scripts that validated the watermark's presence in over 123,000 image pairs. While primarily an application (tool for watermark removal), it has a strong research character due to its analytical components and large-scale validation studies.
PhotoEditor is an Android library (published on Maven Central) that provides a comprehensive image editing SDK. It allows users to draw on images with customizable brushes and shapes (line, oval, rectangle, arrow), apply filter effects via Android's deprecated MediaEffect API, add and edit text with rich styling (color, font, shadow, border), insert emoji and stickers, and perform pinch-to-scale/rotate gestures on added elements. The library is built around a `PhotoEditorView` custom RelativeLayout that composes an ImageView, a DrawingView (custom canvas for brush/shape rendering), and an ImageFilterView (GLSurfaceView for filters). The architecture employs several design patterns: Builder (PhotoEditor, ShapeBuilder, TextStyleBuilder, SaveSettings), Composite (Graphic interface with Text, Sticker, Emoji implementations), Strategy (Shape interface with concrete shapes), and Listener (OnPhotoEditorListener, BrushViewChangeListener). The sample app demonstrates all features. The library has a robust undo/redo system managed by GraphicManager and PhotoEditorViewState. While the core functionality is solid, the filter implementation relies on deprecated Android APIs (android.media.effect), which is a known limitation and source of issues. The codebase is well-structured with unit and instrumentation tests, CI/CD pipelines, and proper Kotlin coroutines for async saving.
PyEMD is a pure Python library for computing the Earth Mover's Distance (also known as Wasserstein distance) between histograms. As of version 2.0, it serves as a thin wrapper around the POT (Python Optimal Transport) library, providing three main functions: `emd()` for computing the EMD value, `emd_with_flow()` for getting both the EMD value and the flow matrix, and `emd_samples()` for computing EMD directly from sample arrays. The library implements optimizations from the original C++ implementation, including pre-flow cancellation of mass within same bins for zero-cost transport. It follows modern Python packaging practices with pyproject.toml, uses setuptools_scm for version management, and maintains comprehensive test coverage.
This repository contains `libjabcode`, a C library for encoding and decoding JAB Code, a high-capacity 2D color barcode standardized as ISO/IEC 23634:2022. The library provides a complete pipeline: encoding input data into a color barcode image (PNG/TIFF) and decoding captured images back to data. It supports multiple symbols (master + up to 60 docked slaves), configurable color palettes (4–256 colors), LDPC error correction with configurable code rates, and data compression via multiple encoding modes (numeric, alphanumeric, byte, ECI, etc.). The project also includes command-line tools `jabcodeWriter` and `jabcodeReader` for direct use. The architecture is modular, with distinct components for binarization, detection (finder/alignment patterns), perspective transformation, sampling, masking, interleaving, and LDPC encoding/decoding. The library is written in C and bundles third-party image I/O libraries (libpng, libtiff, zlib). The code demonstrates strong algorithmic craftsmanship, especially in the LDPC implementation and the robust detection pipeline that handles noise and perspective distortion. Originally developed by Fraunhofer SIT, the repository has been actively maintained (last commit April 2026, 1000+ stars). The documentation is generated with Doxygen, and the source code is well-structured with clear public API in `jabcode.h`. However, the bundled old library versions and manual memory management present moderate technical drift. The primary use case is embedding JAB Code generation/decoding into applications or using the provided CLI tools.
GraXpert is a desktop application (with CLI support) for astronomical image processing, specifically for removing background gradients from astrophotos. It provides multiple interpolation methods (RBF, Splines, Kriging) that require manual selection of background sample points, as well as an AI-based method that automatically extracts the background using ONNX Runtime models. The application also includes AI-powered denoising and deconvolution (object-only and stars-only) features. The architecture is a monolithic Python application using customtkinter for the GUI, with multiprocessing for parallel interpolation and onnxruntime for AI inference. It supports common astronomical image formats (FITS, XISF, TIFF) and includes a command-line interface for batch processing. The codebase is well-structured with design patterns (command, repository, event bus), localization, and CI/CD pipelines for cross-platform builds.
imghash is a Node.js library for computing perceptual image hashes (pHash) using the block mean value based hashing method. It supports PNG, JPEG, BMP, and WebP image formats, and can accept file paths or Buffers as input. The library provides a simple async API to generate hashes in hex or binary format, with configurable bit lengths. It includes utility functions for converting between hex and binary representations. The codebase is written in TypeScript, well-tested with unit and e2e tests, and follows modern JavaScript practices. It handles edge cases such as palette-based PNGs and problematic JPEG images that cause longjmp errors in WebAssembly decoders by falling back to an alternative JPEG library.
esmBot is a feature-rich Discord bot focused on image manipulation, music playback, and server management. It leverages Oceanic.js for Discord API interaction, native C++ addons built on libvips for high-performance image processing, and Lavalink for music streaming. The bot supports both classic prefix commands and Discord slash commands, with a modular command class hierarchy that simplifies adding new features. It includes a database abstraction layer (SQLite or PostgreSQL), a localization system supporting 20+ languages, and a pagination utility for interactive embeds. The bot can run in a clustered PM2 environment and optionally operate a separate media API server for distributed processing. While the codebase demonstrates good engineering practices with clean abstractions, it has some security concerns (an eval/exec command), incomplete translations, and a complex native build process that may introduce maintenance overhead.
ScreenToGif is a Windows desktop application for screen, webcam, and sketchboard recording, with a built-in editor and export to animated images (GIF, APNG, WebP, AVIF), video (MP4, AVI, MKV, MOV, WebM), image sequences (BMP, JPEG, PNG), PSD, and its own project format (STG). The architecture follows MVVM with multiple projects: ScreenToGif (WPF UI), ScreenToGif.Model (domain/enums/interfaces), ScreenToGif.ViewModel (presets/tasks), ScreenToGif.Util (helpers, codification, converters, settings), ScreenToGif.Native (P/Invoke wrappers), and ScreenToGif.Test (unit tests). The application uses .NET 9 and relies on FFmpeg, Gifski, KGySoft.Drawing, and SharpDX (for DirectX capture). It features a rich set of custom WPF controls, global keyboard/mouse hooks, undo/redo with file-based state, color quantization algorithms, and cloud upload integration (Imgur, Yandex Disk). The codebase is well-structured but shows signs of technical debt: large monolithic files, legacy encoder implementations, deprecated SharpDX dependency, and minimal test coverage.
Fiji (Fiji Is Just ImageJ) is a comprehensive scientific image processing platform built on ImageJ. This is a portable application distribution rather than a library, designed for life sciences research with cross-platform support (Windows, Linux, macOS). The codebase implements a monolithic application architecture with a plugin system based on SciJava, supporting multiple scripting languages (Java, JavaScript, Python, Ruby, Clojure, BeanShell, ImageJ Macro). It manages plugin dependencies via Maven-based update sites and provides a launcher system that handles platform-specific native library paths and JVM configuration. The repository demonstrates significant engineering craftsmanship in its cross-platform build automation, legacy compatibility layer for ImageJ 1.x, and service abstraction patterns. However, it carries technical debt through deprecated components (fiji.Main, bin/ImageJ.sh), version drift between pom.xml (2.18.1-SNAPSHOT) and Info.plist (2.0.2), and heavy reliance on shell scripts for platform-specific logic. The codebase is actively maintained with recent commits but has 138 open issues indicating ongoing development challenges.
PILKit is a Python library providing image processing utilities for PIL/Pillow. It offers a collection of processor classes (e.g., ResizeToFit, SmartCrop, GaussianBlur) that can be chained via a Pipeline pattern to manipulate images. The library also includes utility functions for image format handling, saving, and transparency management. Architecture-wise, it's a modular library with clear separation of concerns: processors handle specific transformations, utilities manage format conversions, and the Pipeline enables composition. The codebase demonstrates solid engineering practices with version compatibility layers and thoughtful error handling for PIL's quirks.
This repository is an Android library for GPU-accelerated real-time image and video processing, named 'android-gpuimage-plus' (CGE engine). It provides a comprehensive set of OpenGL ES shader-based filters (brightness, contrast, hue, saturation, vignette, sketch, liquify, color mapping, LUT, etc.) and a filter chain pipeline for applying multiple effects. The library supports camera preview with live filters, video playback with effects, and video recording to MP4 using an optional FFmpeg backend. It includes a demo application (cgeDemo) showcasing all features, including image editing, camera capture, video player, and face tracking (stub). The architecture is a Java/Kotlin API layer with JNI wrappers to a native C++ core that manages OpenGL ES contexts, shader programs, and frame buffer objects. External dependencies include OpenGL ES 2.0/3.0, optional FFmpeg (version 3.4.8), and Android Camera1/CameraX APIs. The library is published as an AAR artifact with variants for different page sizes (4KB and 16KB) and optional video module.
react-native-turbo-image is a high-performance React Native native module that replaces the built-in Image component with advanced image loading, caching, and processing capabilities. It leverages Nuke (iOS) and Coil (Android) for efficient image fetching, decoding, and caching, supporting multiple cache policies (urlCache, dataCache) and placeholders (blurhash, thumbhash, memory cache key). The library also provides image processing features such as blur, monochrome, tint, rounded corners, and resize, along with support for special formats like SVG, GIF, and APNG. Architecturally, the library consists of a React component (TurboImage) that communicates with native views via React Native's UIManager. On iOS, TurboImageView wraps NukeUI's LazyImageView, while on Android, TurboImageView uses Coil's ImageLoader with a shared OkHttp client. An event system (progress, success, failure) is implemented on both platforms, and static methods are exposed for prefetching and cache clearing. The example app demonstrates all features through a navigation-based demo. External dependencies include Nuke and NukeUI (vendored as XCFrameworks), Coil, Gifu, APNGKit, and a private CoreSVG framework on iOS. The library is published on npm and follows conventional commits. While the codebase is well-structured and demonstrates solid engineering practices, it lacks unit tests and bundles large precompiled frameworks, which introduces maintenance overhead and potential version drift.
This repository provides Docker images and deployment configurations for running Thumbor, an open-source photo thumbnail service. It builds three main components: the core Thumbor image service, an nginx-based caching proxy (nginx-proxy-cache), and a remote computer vision service (remotecv) for asynchronous smart cropping and feature detection. The project includes build scripts, CI/CD workflows, testing infrastructure, benchmarking tools, and deployment recipes (docker-compose and Kubernetes) to facilitate easy deployment and scaling of Thumbor-based image processing systems. The architecture follows a microservices pattern where Thumbor handles image processing, nginx-proxy-cache provides caching and reverse proxying, and remotecv offloads heavy computer vision tasks.
pylinac is a Python library for performing TG-142 QA tasks on linear accelerators. It provides high-level analysis modules for common radiotherapy QA tests—VMAT, Winston-Lutz, PIPS, field analysis, planar imaging, log analysis, CT, and star shot—plus lower-level core modules for image handling, gamma analysis, ROI calculations, and structured results. The library is used as a dependency in clinical QA workflows and exposes a consistent API: instantiate an analysis class with a DICOM/log file path, call `.analyze(...)`, then access `.results_data()`, `.publish_pdf()`, or `.plot_analyzed_image()`.
Handwrite is a CLI application that converts a scanned handwriting sample into a TrueType font. The pipeline consists of three stages: SHEETtoPNG uses OpenCV to detect and extract individual character images from a grid-based form; PNGtoSVG uses Potrace to convert the PNG images to SVG vector outlines; and SVGtoTTF uses FontForge to compile the SVGs into a font file with configurable metrics, kerning, and bearings. The architecture is a simple sequential pipeline orchestrated by the CLI entry point. External dependencies include OpenCV, Pillow, Potrace, and FontForge. The codebase is well-structured with unit tests, CI, and modern Python packaging (uv, Python 3.14). The character detection module in `sheettopng.py` demonstrates reusable grid-based contour extraction logic.
PopSift is a CUDA-accelerated SIFT (Scale-Invariant Feature Transform) feature extraction library. It provides a C++ library (libpopsift) with an asynchronous API for enqueuing images and retrieving features, and two command-line demo applications (popsift-demo, popsift-match). The library implements the full SIFT pipeline (Gaussian pyramid, extrema detection, orientation assignment, descriptor computation) on NVIDIA GPUs, supporting multiple algorithmic variants (PopSift, VLFeat, OpenCV) for research comparison. It is designed for high-performance real-time feature extraction and can be integrated via CMake. Despite its research origins (Simula Research Laboratory), the codebase is well-structured with modular CUDA kernels, debug utilities, and parallel primitives. The library is actively used in computer vision projects and maintains compatibility with recent CUDA versions while preserving legacy fallbacks.
This repository is a Ruby gem (`badge`) that programmatically overlays badges (e.g., beta/alpha ribbons) or shields (from shields.io) onto iOS, tvOS, and Android app icons. It is primarily used as a CLI tool or integrated via a fastlane plugin. The core logic uses MiniMagick (ImageMagick) to composite images, with optional SVG-to-PNG conversion via rsvg-convert for crisp shields. The gem intelligently parses Xcode asset catalog `Contents.json` files to detect legacy, single-size, or layered icon formats, and supports a wide range of customization options including dark/light themes, custom badge images, shield parameters, gravity, geometry, scaling, and grayscale conversion. It overwrites icons in place and preserves the original file format (PNG, WebP, JPEG). The codebase is well-structured with clear separation of concerns (options, runner, icon catalog, base constants) and includes a comprehensive smoke test suite (20 end-to-end cases). While the gem is functional and widely used (974 stars), it shows minor technical debt such as a load-bearing typo (`retry_attemps`), broad exception rescues, and reliance on the deprecated `open-uri` library. The icon catalog parser is a standout component that could be extracted for reuse in other Xcode asset catalog tooling.
amazoncaptcha is a pure Python library for solving Amazon's image-based text captchas. It does not rely on external OCR or machine learning models; instead, it uses a custom algorithm that converts the captcha image to monochrome, segments individual letters, and matches each extracted letter against a precomputed library of compressed patterns (stored as zlib-compressed byte strings in JSON files). The library provides a simple API: the `AmazonCaptcha` class can be instantiated with an image file path, URL, or a Selenium WebDriver screenshot, and its `solve()` method returns the predicted captcha text. The architecture is monolithic: a single package with image processing utilities (utils.py), the solving logic (solver.py), optional data collection tools (devtools.py), and embedded training data for letters A–Z. Externally, it depends on Pillow for image manipulation and requests for downloading captchas from URLs. The solver is designed for high accuracy (claimed 99.9% on various tests) and lightness, making it suitable for web automation and scraping tasks that encounter Amazon captchas. While the core algorithm is elegant and self-contained, its effectiveness is tightly coupled to the specific font, distortion, and noise patterns used by Amazon in its captchas. Any change to Amazon's captcha design would likely require retraining or updating the embedded pattern database. The repository also includes a test suite, CI configuration, and documentation for integration with Selenium.
Cell-ACDC is a desktop GUI application for bioimage time-lapse analysis, purpose-built for cell segmentation, tracking, and cell cycle annotation in live-cell imaging data. The application is built on PyQt5/PyQt6 with pyqtgraph for visualization, and exposes both a full graphical interface and a headless CLI mode via console entry points (`cellacdc`, `acdc`, `Cell-ACDC`). It includes Fiji/ImageJ macros for converting raw microscopy files into the expected folder structure, Cython-accelerated extensions for performance, and a QObject-based worker/signal architecture for running long segmentation and tracking tasks asynchronously with progress reporting and pause/resume control. The codebase is organized around a monolithic `dataPrepWin` GUI class that mixes UI construction, file I/O, worker management, and domain logic, alongside more modular components: `core.py` provides image-analysis and segmentation post-processing helpers (nearest-point matching, convex-hull calculations, label filtering), `whitelist.py` implements an ID filtering mechanism with original label preservation, and `workers.py` defines ~30 reusable signals for progress, error handling, and task control. The application depends on external tools including Java (for some segmentation plugins), PyTorch (for deep-learning-based segmentation), and a rigid folder structure with hardcoded paths. The repository shows active maintenance with CI workflows for both PyQt5 and PyQt6, Cython build automation, and issue templates. However, it exhibits technical drift: a deprecated PyTorch conda channel is referenced, Java version compatibility issues exist, and the dual Qt5/Qt6 support increases test surface. The codebase has moderate coupling and hardcoded settings (e.g., `QSettings('schmollerlab', 'acdc_dataPrep')`), but the core algorithmic components are sufficiently isolated for reuse in other bioimage analysis pipelines.
This repository contains the Amaze File Utilities Android application, an open-source file management utility suite with built-in media players. The app provides comprehensive file browsing, storage analysis (duplicate, large, hidden, junk files), image/video/audio playback, image editing, document viewing (PDF, EPUB, DOCX), and peer-to-peer file transfer via Wi-Fi Direct. It also includes a cloud streaming server for Chromecast support. The architecture follows the standard Android MVVM pattern with Jetpack components (ViewModel, LiveData, Room, Navigation), and uses a foreground service for audio playback. The codebase is primarily Kotlin with some legacy Java, and is built with two product flavors: one for the Play Store (with billing and ML Kit) and one for F-Droid (without those features). The app demonstrates solid engineering with reusable abstractions like `AbstractMediaFilesAdapter`, `CloudStreamer`, and `FixedSizePriorityQueue`, though the central `FilesViewModel` is overly large (2000+ lines) and some deprecated Android APIs remain in use. The project is actively maintained with recent commits and zero Dependabot alerts.