Skip to main content

An interactive PyQt5 image annotation tool for segmentation masks and bounding boxes.

Reason this release was yanked:

Not good with 3.12

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

  • โœ… Interactive GUI for image annotation with the mouse
  • ๐Ÿ–Œ๏ธ Scroll between label classes 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 annotations.png is a .png file, the tool uses segmentation masks with class-labeled pixels on a white background.
  • If it's a .txt file, 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) Middle-click + Left-click
Toggle erase mode Middle-click
Clear all Double middle-click
Scroll through labels 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

Repository

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tadqeeq-1.1.3.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tadqeeq-1.1.3-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file tadqeeq-1.1.3.tar.gz.

File metadata

  • Download URL: tadqeeq-1.1.3.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for tadqeeq-1.1.3.tar.gz
Algorithm Hash digest
SHA256 b37e27c723b7b8c54e2a8cd96ad40057218e38e7f3dd891212202b07734f927e
MD5 bb91b12bc62b1cf3ef3b041cd837900b
BLAKE2b-256 6cd2c6975e6519d4bc6470c037fbf63dd3b96bc5938d08e1854d0eb0f7beda7d

See more details on using hashes here.

File details

Details for the file tadqeeq-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: tadqeeq-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for tadqeeq-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d4befb89f00504556652046e75f58cdb51c1c9bc1665be93504496f2b13391fa
MD5 e0d26fd65f1f10f11c4f7f7bcf5b18c9
BLAKE2b-256 060c16e75964aec5692f4eccae7abedb310171b63c62b99fb4971e3a19d40cf7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page