66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
<p>
|
||
<img src="app/assets/logo.png" alt="ICRA Logo" width="140" align="left" hspace="16" vspace="4"/>
|
||
<span style="display:inline-block; margin-top:36px;">
|
||
<strong>ICRA</strong> (Interactive Color Range Analyzer) is a Tkinter-based desktop tool for highlighting customised colour ranges in images.<br/>
|
||
Load a single photo or an entire folder, fine-tune hue/saturation/value sliders, and export overlays complete with quick statistics.
|
||
</span>
|
||
</p>
|
||
<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. Fine‑tune 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.
|