ICRA/README.md

63 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<img src="app/assets/logo.png" alt="ICRA Logo" width="120" align="left" style="margin-right:16px;"/>
**ICRA** (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.
<br clear="all"/>
## 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](https://github.com/astral-sh/uv) for dependency management
- Tkinter (install separately on some Linux distros)
## Setup with uv (Windows PowerShell)
```bash
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 replace the activate step with `source .venv/bin/activate`.
## 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`:
```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.