ICRA/README.md

119 lines
4.5 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.

# ColorCalc – Interactive Colour Range Analyzer
ColorCalc is a desktop app for Windows/macOS/Linux that helps you identify and highlight colours in images. It is built with Python, Tkinter, and Pillow and is tuned for full‑HD screens. Instead of focusing on a single hue (like purple), you can target any colour range, tweak saturation/value thresholds, and export overlays in seconds.
---
## Features
- 🎯 **Configurable hue detection** – adjust hue, saturation, and value windows or pick colours directly from the image/preset swatches.
- πŸͺŸ **Responsive dual-preview UI** – original image on the left, processed overlay on the right, sized for 1080p.
- πŸ–±οΈ **Interactive masks** – draw exclusion rectangles to ignore specific regions when calculating results.
- πŸŒ— **Light & dark mode** – rounded toolbar buttons adapt to the current theme; toggle any time.
- 🟨 **Real‑time stats** – centre-aligned labels show match ratios with/without exclusions plus filenames and dimensions.
- πŸ’Ύ **Overlay export** – save PNG overlays blended with the source image for reporting or further editing.
- βš™οΈ **Config file defaults** – populate `config.toml` to ship different starting values across machines.
- 🎨 **Preset palette** – one-click access to common colours (red, cyan, grey, black, …).
---
## Getting Started
### Requirements
- Python 3.11+ (includes the standard `tomllib`; for 3.10 install `tomli`)
- Tkinter (ships with most Python distributions; on Linux install `python3-tk`)
- Pillow (`pip install pillow`)
### Installation
```bash
git clone https://github.com/<your-org>/ColorCalc.git
cd ColorCalc
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt # or pip install pillow
```
### Launch
```bash
python3 main.py
```
The window opens maximized; load an image, tweak sliders, and watch the overlay update in real time.
---
## Usage Tips
- **Pick colours quickly:** use the 🎨 button to open a colour chooser or click directly inside the left preview (enable πŸ–±οΈ first).
- **Fine-tune defaults:** edit `config.toml` and set keys under `[defaults]`. Restart the app to apply changes.
- **Reset & compare:** `πŸ”„ Slider zurΓΌcksetzen` reverts to defaults and clears the status message.
- **Exclude areas:** right-drag on the original preview to mark rectangles; use `↩️` to undo or `🧹` to clear all.
- **Copy stats:** right-click the filename or ratio labels to copy.
- **Export overlay:** `πŸ’Ύ` saves a PNG with your overlay merged onto the source image.
- **Theme switch:** `πŸŒ“` toggles between light/dark; button palettes update instantly.
---
## Project Structure
```
ColorCalc/
β”œβ”€β”€ app/
β”‚ β”œβ”€β”€ app.py # ColorCalcApp composition root
β”‚ β”œβ”€β”€ __init__.py # Package exports
β”‚ β”œβ”€β”€ gui/
β”‚ β”‚ β”œβ”€β”€ color_picker.py # Colour selection & presets
β”‚ β”‚ β”œβ”€β”€ exclusions.py # Exclusion rectangle handlers
β”‚ β”‚ β”œβ”€β”€ theme.py # Theme detection & style updates
β”‚ β”‚ └── ui.py # Tkinter layout and custom widgets
β”‚ └── logic/
β”‚ β”œβ”€β”€ constants.py # Config defaults & preview sizing
β”‚ β”œβ”€β”€ image_processing.py # Loading, overlay creation, stats
β”‚ └── reset.py # Slider reset mixin
β”œβ”€β”€ config.toml # Default HSV/alpha overrides
β”œβ”€β”€ images/ # Optional sample inputs
└── main.py # CLI entry point (`python3 main.py`)
```
---
## Configuration (`config.toml`)
```toml
[defaults]
hue_min = 250.0 # 0..360Β°
hue_max = 310.0
sat_min = 15.0 # percentage 0..100
val_min = 15.0
val_max = 100.0
alpha = 120 # overlay opacity 0..255
```
All values are optional; omit them to fall back to built-in defaults. Hue min/max support wrap-around (e.g. 350 to 20).
---
## Development Workflow
- Format: project sticks to standard Python style; no formatter enforced.
- Testing: primary quick check is compilation via `python3 -m compileall app main.py`.
- Platform quirks: some theme detection uses Windows registry; errors are swallowed when unavailable.
---
## Contributing
1. Fork + clone.
2. Create a feature branch.
3. Make changes and run `python3 -m compileall app main.py`.
4. Submit a PR with a clear description and screenshots if UI changes are visible.
---
## License
MIT License Β© 2024 ColorCalc contributors. See `LICENSE` (add one if missing) for details.