PhotoTool combines classic image processing, browser-native computer vision, evolutionary parameter search and optional on-device neural embeddings. Uploaded images remain in this tab; the optional semantic model is downloaded to the browser and inference runs locally.
RGB pixels are clustered with a sampled k-means loop, then remapped to the nearest learned center. A spatial-weight option adds normalized x/y position to the distance metric, encouraging larger contiguous regions. This is related to vector quantization / color quantization workflows.
Luminance is lightly blurred, then multiple iso-value thresholds are traced with a marching-squares style cell lookup. The preview is rasterized for speed, but SVG export writes the contour segments as vector paths.
Includes Floyd–Steinberg and Atkinson error diffusion plus 4×4 and 8×8 Bayer ordered threshold matrices. These deliberately trade color resolution for structured spatial detail.
The image is sampled to a grid and luminance or Sobel edge energy becomes vertex height. The canvas preview uses a small perspective projection and painter-sorted quads; OBJ export writes the underlying triangle mesh.
Cell-average luminance drives dot area. The screen can be rotated and rendered as monochrome or a simple RGB rosette.
A shared latent detail variable is mapped into each enabled algorithm's native parameter space. An evolutionary search minimizes pairwise disagreement in luminance distribution, color moments, edge energy and spatial block structure while retaining a configurable amount of source fidelity. Optional MobileNet embedding reranking adds a real pretrained neural-network semantic similarity term after the fast search.
Blend and Weave are joined by k-means Palette Transfer, Lab statistical color transfer, per-channel histogram matching, covariance whitening/coloring transfer, frequency separation, and luma/chroma fusion. These methods preserve different aspects of A while borrowing color or low-frequency structure from B.
The CV Lab lazy-loads the official OpenCV.js WebAssembly build, then exposes Canny, adaptive thresholding, Otsu thresholding, Laplacian response and equalization without changing the core app bundle.
On HTTPS browsers, PhotoTool can use MediaDevices camera frames as source A and process them continuously. Flip switches between preferred environment and user-facing cameras; freezing stops the stream but preserves the last frame.