Skip to main content

Desktop tool for whole-image classification and bounding-box image annotation

Project description

PyQt Image Annotation Tool

CI PyPI License: MIT Python

A desktop app for labeling images in a folder — either assigning whole-image classes, or drawing bounding boxes. Built with PySide6.

Whole-image classification Bounding boxes
Classification mode Bounding box mode

Features

Whole-image classification

  • Assign one or more labels to each image
  • Move or copy labeled images into per-label sub-folders, or leave files untouched
  • Export to CSV and/or XLSX

Bounding boxes

  • Draw, move, resize, and delete rectangular regions per image, each with its own label
  • Export to COCO JSON and/or YOLO txt (with classes.txt)

Both modes

  • Zoom & pan on the image (mouse wheel to zoom, drag to pan)
  • Thumbnail filmstrip showing every image's labeling status
  • Undo (Ctrl+Z)
  • Dark theme
  • Drag & drop a folder onto the app to open it
  • Autosave: progress is saved continuously and offered back to you if you reopen the same folder, so a crash or an accidental close doesn't lose your work

Setup screen

Installation

From PyPI:

pip install pyqt-image-annotation-tool
annotator

Standalone build (no Python required): download the archive for your OS from the latest release and run the annotator executable inside it.

From source:

git clone https://github.com/nikuznetsov/PyQt-image-annotation-tool.git
cd PyQt-image-annotation-tool
pip install -e .
annotator            # or: python -m annotator

Usage

  1. Pick the folder containing your images (or drag & drop it onto the window).
  2. Choose an annotation type — whole-image classification or bounding boxes.
  3. For classification, also choose a mode:
    • csv — labels are tracked and exported to CSV/XLSX; files aren't moved.
    • copy / move — a folder is created per label and labeled images are copied/moved into it.
  4. Enter your label names (or load them from a text file, one label per line).
  5. Click Next and start labeling.

Keyboard shortcuts

Key Action
→ / ← Next / previous image
1–9, 0 Select label (wraps after the 9th)
Ctrl+Z Undo
Mouse wheel Zoom
Middle-drag (bbox mode) / drag (classification mode) Pan
Delete (bbox mode) Remove selected box

Development

pip install -e ".[dev]"
pytest
ruff check .

See CONTRIBUTING.md for more.

Contributing

Pull requests are welcome.

License

MIT

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

pyqt_image_annotation_tool-0.1.0.tar.gz (208.1 kB view details)

Uploaded Source

Built Distribution

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

pyqt_image_annotation_tool-0.1.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file pyqt_image_annotation_tool-0.1.0.tar.gz.

File metadata

File hashes

Hashes for pyqt_image_annotation_tool-0.1.0.tar.gz
Algorithm Hash digest
SHA256 407d0f6aad34f4300f8faeb0cef23bcaed5daf71364209970d35896dcfb7deb2
MD5 2556e57c610cf0ba16c230475fe0be52
BLAKE2b-256 fd3fb7fc0b824d6ea53a3801f09af27c6bd6252bca90cdd0c3b4ee069dae1964

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyqt_image_annotation_tool-0.1.0.tar.gz:

Publisher: release.yml on nikuznetsov/PyQt-image-annotation-tool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyqt_image_annotation_tool-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pyqt_image_annotation_tool-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20277838a65ced17e1fab06f9ac168b9b304b5f8baeb3feea8733b65a9408a06
MD5 838581fc0b92559b2a75e7aaed853283
BLAKE2b-256 62f54f2777bfc6e33395697f1f6355dc6af812997eecadf2c9202da1b15b1f04

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyqt_image_annotation_tool-0.1.0-py3-none-any.whl:

Publisher: release.yml on nikuznetsov/PyQt-image-annotation-tool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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