Go to file
lm a1c105dba1 Ignore uv artifacts 2025-10-17 13:51:13 +02:00
app Remove ttkbootstrap support 2025-10-17 13:11:52 +02:00
images Initial project structure 2025-10-15 18:03:07 +02:00
.gitignore Ignore uv artifacts 2025-10-17 13:51:13 +02:00
README.md Remove ttkbootstrap support 2025-10-17 13:11:52 +02:00
config.toml Refactor app layout and load defaults from config 2025-10-15 18:16:18 +02:00
main.py Refactor app layout and load defaults from config 2025-10-15 18:16:18 +02:00
pyproject.toml Remove ttkbootstrap support 2025-10-17 13:11:52 +02:00

README.md

ICRS (Interactive Color Range Analyzer)

ICRS is a small Tkinter tool for analysing colour ranges in images. You load a picture, pick or click a reference colour, adjust hue/saturation/value sliders, and the app marks matching pixels while showing quick stats.

Features

  • Two synced previews (original + overlay)
  • Hue/Sat/Value sliders with presets and image colour picker
  • Exclusion rectangles to ignore regions
  • Theme toggle (light/dark) with rounded toolbar buttons
  • Folder support with previous/next navigation
  • Quick overlay export (PNG) and optional defaults 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

git clone https://git.lukasmahler.de/lm/ICRS.git
cd ICRS
uv venv
source .venv/bin/activate         # Windows: .venv\Scripts\activate
uv pip install .                  # install ICRS and dependencies
uv run icrs                       # launches the GUI

The launcher copies Tcl/Tk resources into the virtualenv on first run, so no manual environment tweaks are needed.

Workflow

  1. Load an image (📂) or a folder (📁).
  2. Pick a colour (🎨 dialog, 🖱️ image click, or preset swatch).
  3. Finetune sliders; watch the overlay update on the right.
  4. Move through folder images with ⬅️ / ➡️.
  5. Draw exclusions with right drag; reset or save when ready.

Config Defaults

Optional config.toml:

[defaults]
hue_min = 250.0
hue_max = 310.0
sat_min = 15.0
val_min = 15.0
val_max = 100.0
alpha = 120

Project Layout

app/
  app.py          # main app assembly
  gui/            # UI, theme, picker mixins
  logic/          # image ops, defaults, reset
config.toml       # optional defaults
main.py           # entry point

Development

  • Quick check: uv run python -m compileall app main.py
  • Contributions welcome; include screenshots for UI tweaks.