An interactive PyQt5 image annotation tool for segmentation masks and bounding boxes.
Project description
Tadqeeq โ Image Annotator Tool
An interactive image annotation tool built with PyQt5, designed for efficient labeling of segmentation masks and bounding boxes.
Developed by Mohamed Behery @ RTR Software Development - An "Orbits" Subsidiary ๐ April 30, 2025 ๐ชช Licensed under the MIT License
๐ Features
- โ Minimalist Interactive Design
- ๐๏ธ Scroll through label classes / Adjust pen size with the mouse wheel
- ๐จ Supports segmentation masks (.png) and bounding boxes (.txt)
- ๐ง Dynamic label color generation (HSV-based)
- ๐ฌ Floating labels showing hovered and selected classes
- ๐พ Auto-save and manual save (Ctrl+S)
- ๐งฝ Flood-fill segmentation
- ๐ซ Middle-click erase mode and double-click to clear all
๐ฆ Installation
Option 1: Install via pip
pip install tadqeeq
Option 2: Run from source
git clone https://github.com/orbits-it/tadqeeq.git
cd tadqeeq
pip install -r requirements.txt
๐ ๏ธ Usage
Import in your code:
from tadqeeq import ImageAnnotator
Run demo from command line (if installed via pip):
tadqeeq path/to/image.jpg path/to/annotations[.png|.txt]
Note: If the annotations file is PNG one, the tool uses segmentation masks with class-labeled pixels on a white background.
If it's a.txtfile, it uses YOLO-style bounding boxes formatted as:
label_index x_offset y_offset width height
๐งญ Controls
| Action | Mouse/Key |
|---|---|
| Draw / Fill segment | Left-click / double-click |
| Erase (one object) | Right-click + Left-click |
| Toggle erase mode | Right-click |
| Clear all | Double right-click |
| Scroll through labels / Adjust pen size | Mouse wheel |
| Save annotations | Ctrl+S |
| Show label on hover | Hover cursor |
๐ Project Structure
root/
โโโ tadqeeq/
| โโโ __init__.py # Entry point for importing
| โโโ widgets.py # Contains ImageAnnotator class
| โโโ utils.py # Helper methods (flood fill, bounding box logic)
| โโโ cli.py # Optional CLI entry point
โโโ README.md
โโโ LICENSE
โโโ setup.py
โโโ pyproject.toml
โโโ requirements.txt
๐งโ๐ป Contributing
Pull requests are welcome!
If you add features (e.g. COCO export, brush tools, batch processing), please document them in the README.
๐ License
This project is licensed under the MIT License.
See LICENSE for the full license text.
๐ก Acknowledgements
๐ Built for computer vision practitioners needing fast, mouse-based labeling with clean overlays and autosave logic.
๐ Special thanks to PyQt5 for providing the powerful and flexible GUI toolkit that made the development of this interactive image annotator possible.
๐ Related Resources
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tadqeeq-1.2.0.tar.gz.
File metadata
- Download URL: tadqeeq-1.2.0.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a55b69abd68d54920da6546942f34555db0656dc2f21ae32345ebf174b244cb
|
|
| MD5 |
d7a1e691edb213dda5d787bf9cf780f4
|
|
| BLAKE2b-256 |
6f560105ede20daa27390b1f8fe797f9cff257bf1884b6e51ebb06b0bae69326
|
File details
Details for the file tadqeeq-1.2.0-py3-none-any.whl.
File metadata
- Download URL: tadqeeq-1.2.0-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c24a7bfa9f7afe9649c9091be770861667757c1cf3ccd6f8f23e256c0a4c698
|
|
| MD5 |
db480d8051918af67fd3f518dcf78660
|
|
| BLAKE2b-256 |
5f5c500645fdd7cba710072deab26dc60ef3403092a0ac275d2aa01b61f97d8c
|