|
|
||
|---|---|---|
| app | ||
| images | ||
| .gitignore | ||
| README.md | ||
| config.toml | ||
| main.py | ||
| pyproject.toml | ||
README.md
Interactive Color Range Analyzer is a Tkinter-based desktop tool for highlighting customised colour ranges in images.
Load a single photo or an entire folder, fine-tune hue/saturation/value sliders, and export overlays complete with quick statistics.
Load a single photo or an entire folder, fine-tune hue/saturation/value sliders, and export overlays complete with quick statistics.
Features
- Two synced previews (original + overlay)
- Hue/Sat/Value sliders with presets and image colour picker
- Exclusion rectangles or freehand polygons that persist while browsing
- Theme toggle (light/dark) with rounded toolbar buttons and accent-aware highlights
- Folder support with wrap-around previous/next navigation
- Quick overlay export (PNG) with configurable defaults and language settings via
config.toml
Requirements
- Python 3.11+ (3.10 works with
tomli) - uv for dependency management
- Tkinter (install separately on some Linux distros)
Setup with uv (Windows PowerShell)
git clone https://git.lukasmahler.de/lm/ICRA.git
cd ICRA
uv venv
source .venv/Scripts/activate
uv pip install .
uv run icra
The launcher copies Tcl/Tk resources into the virtualenv on first run, so no manual environment tweaks are needed.
On macOS/Linux activate with source .venv/bin/activate instead.
Workflow
- Load an image (
🖼) or a folder (📂). - Pick a colour (
🎨dialog,🖱️image click, or preset swatch). - Fine‑tune sliders; watch the overlay update on the right.
- Toggle freehand mode (
△) or stick with rectangles and mark areas to exclude (right mouse drag). - Move through folder images with
⬅️/➡️; exclusions stay put unless you opt into automatic resets. - Save an overlay (
💾) when ready.
Project Layout
app/
app.py # main app assembly
gui/ # UI, theme, picker mixins
logic/ # image ops, defaults, config helpers
lang/ # localisation TOML files
config.toml # optional defaults
main.py # entry point
Localisation
- English and German translations ship in
app/lang. Set the desired language via the top-levellanguagekey inconfig.toml.
Development
- Quick check:
uv run python -m compileall app main.py - Contributions welcome; include screenshots for UI tweaks.