labelImg++ is an enhanced graphical image annotation tool with Gallery Mode for browsing and labeling images
Project description
A modern, enhanced image annotation tool for machine learning
labelImg++ is a powerful graphical image annotation tool for creating bounding box labels, designed for machine learning and computer vision projects. Forked from the original LabelImg with significant enhancements.
Version 2.0.0 - First stable release! Install with pip install labelImgPlusPlus
Features
Core Annotation Features
Multi-format support: PASCAL VOC (XML), YOLO (TXT), CreateML (JSON)
Bounding box annotation with drag-and-drop interface
Auto-save mode for uninterrupted workflow
Predefined class labels with customizable list
Verification system to mark completed annotations
New in labelImg++ v2.0
- Undo/Redo Support
Full undo/redo for all annotation actions. Press Ctrl+Z to undo and Ctrl+Y to redo. Never lose your work again!
- Gallery Mode with Annotation Preview
Visual thumbnail gallery showing all images with bounding box overlays directly on thumbnails.
Colored borders indicate status: Gray (no labels), Blue (has labels), Green (verified)
Bounding boxes visible on thumbnails with corner markers (less clutter for nested boxes)
Quick size presets (S/M/L/XL) plus slider for fine control
Smart selection: click on nested boxes selects the inner box
Press Ctrl+G to toggle gallery mode
- Modern UI with Feather Icons
Clean, modern interface with beautiful Feather icons and improved visual design.
- Responsive DPI Scaling
Icons and UI elements scale properly on high-DPI displays (4K, Retina).
- Expandable Toolbar
Click the chevron at the bottom of the toolbar to expand/collapse and show full button labels.
- Consolidated File Menu
Open File, Open Dir, and Change Save Dir combined into a single dropdown for cleaner toolbar.
- Brightness Adjustment
Adjust image brightness on-the-fly to better see annotations on dark or light images.
- Dark Mode Theme
Choose between light and dark themes for comfortable annotation in any lighting condition.
Press Ctrl+Shift+T to toggle between themes
Theme preference automatically saved
All UI components (canvas, gallery, dialogs) respect the active theme
See Dark Mode Documentation for detailed information
Installation
From PyPI (Recommended)
Note: The command was renamed from labelImgPlusPlus to labelimgpp in v2.1.1. The old command still works but shows a deprecation warning.
pip3 install labelimgplusplus
labelimgpp
Or use the full command name:
labelimgplusplus
With a specific image or directory:
labelimgpp [IMAGE_PATH] [PRE-DEFINED CLASS FILE] [SAVE_DIR]
Build from Source
Ubuntu/Linux:
sudo apt-get install pyqt5-dev-tools
pip3 install -r requirements/requirements-linux-python3.txt
make qt5py3
python3 labelImgPlusPlus.py
macOS:
pip3 install pyqt5 lxml
make qt5py3
python3 labelImgPlusPlus.py
Windows:
pip install pyqt5 lxml
pyrcc5 -o libs/resources.py resources.qrc
python labelImgPlusPlus.py
Quick Start
Open images: Click the file dropdown button or press Ctrl+U to load a directory
Create annotations: Press W or click Create RectBox, then drag to draw
Label objects: Select a class from the popup dialog
Save: Press Ctrl+S to save annotations
Navigate: Use D (next) and A (previous) to move between images
Review: Press Ctrl+G for gallery mode to review all annotations
Supported Annotation Formats
Format |
Extension |
Description |
|---|---|---|
PASCAL VOC |
.xml |
ImageNet format, absolute coordinates |
YOLO |
.txt |
Normalized coordinates (0-1), with classes.txt for class names |
CreateML |
.json |
Apple’s ML format for iOS/macOS |
Keyboard Shortcuts
File Operations
Ctrl + O |
Open file |
Ctrl + U |
Open directory |
Ctrl + R |
Change save directory |
Ctrl + S |
Save current annotation |
Ctrl + Shift + S |
Save as |
Navigation
D |
Next image |
A |
Previous image |
Ctrl + G |
Toggle Gallery Mode |
Annotation
W |
Create bounding box |
Ctrl + Z |
Undo |
Ctrl + Y |
Redo |
Ctrl + D |
Duplicate selected box |
Del |
Delete selected box |
Space |
Mark image as verified |
Arrow keys |
Move selected box |
View
Ctrl + + |
Zoom in |
Ctrl + - |
Zoom out |
Ctrl + F |
Fit window |
Ctrl + Shift + F |
Fit width |
Ctrl + Shift + T |
Toggle dark mode theme |
Configuration
Predefined Classes
Edit data/predefined_classes.txt to customize the label options:
dog
cat
person
car
bicycle
Reset Settings
If you encounter issues, reset the settings:
rm ~/.labelImgSettings.pkl
Or use Menu > File > Reset All
Roadmap
- v2.0.0 (Stable) - Current
First stable release with bug fixes and UX improvements
Silent error handling fixed
YOLO format crash on missing classes.txt fixed
Format change warning dialog added
Save location visibility in title bar
Auto-save menu items clarified
Gallery status color legend added
Progress indicator for large directories
Gallery size presets (S/M/L/XL buttons)
Corner markers on thumbnails for cleaner nested box display
Improved nested bounding box selection (smallest box selected)
Gallery freeze fix for large directories
- v2.1.0 - Planned
Dark mode theme (Completed - use Ctrl+Shift+T to toggle)
Annotation review workflow
Dataset splitting tool (train/val/test)
Label consistency checker
Annotation statistics dashboard
Improved label dialog with search/filter
Keyboard shortcuts customization
- v2.2.0 - Future
Polygon annotation support
Recent files menu
Snap to grid / alignment guides
Multiple image annotation (batch labeling)
- v3.0.0 - Vision
Plugin architecture
COCO format support
Ultralytics/YOLOv8 direct export
FiftyOne dataset integration
See the GitHub Issues for detailed feature tracking.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add amazing feature')
Push to the branch (git push origin feature/amazing-feature)
Open a Pull Request
License
Based on LabelImg by Tzutalin.
Acknowledgments
Original LabelImg by Tzutalin
Feather Icons for modern iconography
All contributors and users of labelImg++
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 labelimgplusplus-2.3.0.tar.gz.
File metadata
- Download URL: labelimgplusplus-2.3.0.tar.gz
- Upload date:
- Size: 175.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
128adf3af941e971ccfd702e67d506c6308c785c4c8b2d77d5af1f235c7b9b4b
|
|
| MD5 |
8fac0ab8281086a3599667737e28f154
|
|
| BLAKE2b-256 |
40ef2e23d558daf77a4cd8bd433625ffd544b236cd90927566db84cf708352f3
|
Provenance
The following attestation bundles were made for labelimgplusplus-2.3.0.tar.gz:
Publisher:
ci.yaml on abhiksark/labelImg-plus-plus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labelimgplusplus-2.3.0.tar.gz -
Subject digest:
128adf3af941e971ccfd702e67d506c6308c785c4c8b2d77d5af1f235c7b9b4b - Sigstore transparency entry: 1186628402
- Sigstore integration time:
-
Permalink:
abhiksark/labelImg-plus-plus@9be5ec1048840fae8db173472bd99d12ecd10f2e -
Branch / Tag:
refs/tags/v2.3.0 - Owner: https://github.com/abhiksark
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yaml@9be5ec1048840fae8db173472bd99d12ecd10f2e -
Trigger Event:
push
-
Statement type:
File details
Details for the file labelimgplusplus-2.3.0-py3-none-any.whl.
File metadata
- Download URL: labelimgplusplus-2.3.0-py3-none-any.whl
- Upload date:
- Size: 184.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ece4956b4e0104e960749f2b6c141f8dfc99cf51fb2540a84343726278ee34e
|
|
| MD5 |
eb89068a54688d32679f3e0cab1d22b8
|
|
| BLAKE2b-256 |
adf336a2b9cdfe2eb89e7c88fd360e6707d8b20a437302d4d0296e8c9b88ff51
|
Provenance
The following attestation bundles were made for labelimgplusplus-2.3.0-py3-none-any.whl:
Publisher:
ci.yaml on abhiksark/labelImg-plus-plus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labelimgplusplus-2.3.0-py3-none-any.whl -
Subject digest:
8ece4956b4e0104e960749f2b6c141f8dfc99cf51fb2540a84343726278ee34e - Sigstore transparency entry: 1186628512
- Sigstore integration time:
-
Permalink:
abhiksark/labelImg-plus-plus@9be5ec1048840fae8db173472bd99d12ecd10f2e -
Branch / Tag:
refs/tags/v2.3.0 - Owner: https://github.com/abhiksark
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yaml@9be5ec1048840fae8db173472bd99d12ecd10f2e -
Trigger Event:
push
-
Statement type: