labelimgplusplus 2.3.2__tar.gz → 2.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/HISTORY.rst +91 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/PKG-INFO +4 -5
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/README.rst +1 -1
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/labelImgPlusPlus.py +216 -639
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/labelimgplusplus.egg-info/PKG-INFO +4 -5
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/labelimgplusplus.egg-info/SOURCES.txt +8 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/core/commands.py +7 -3
- labelimgplusplus-2.4.0/libs/core/settings.py +119 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/core/shape.py +2 -2
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/core/shortcut_config.py +21 -6
- labelimgplusplus-2.4.0/libs/data/predefined_classes.txt +15 -0
- labelimgplusplus-2.4.0/libs/formats/annotation_loader.py +87 -0
- labelimgplusplus-2.4.0/libs/formats/annotation_probe.py +197 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/formats/coco_io.py +22 -12
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/formats/create_ml_io.py +18 -5
- labelimgplusplus-2.4.0/libs/formats/format_metadata.py +80 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/formats/labelFile.py +9 -8
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/formats/pascal_voc_io.py +16 -7
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/formats/yolo_seg_io.py +20 -8
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/resources.py +43 -43
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/tools/dataset_splitter.py +83 -27
- labelimgplusplus-2.4.0/libs/utils/dpi.py +50 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/utils/stringBundle.py +3 -2
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/utils/styles.py +88 -84
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/utils/utils.py +3 -3
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/batchVerifyDialog.py +3 -1
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/canvas.py +110 -20
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/galleryWidget.py +8 -5
- labelimgplusplus-2.4.0/libs/widgets/gallery_status_controller.py +91 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/keypointPanel.py +22 -11
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/shortcutsDialog.py +25 -11
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/splitDialog.py +14 -2
- labelimgplusplus-2.4.0/libs/widgets/stats_controller.py +89 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/toolBar.py +6 -29
- labelimgplusplus-2.4.0/libs/widgets/view_scaling.py +39 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/pyproject.toml +3 -4
- labelimgplusplus-2.3.2/libs/core/settings.py +0 -50
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/CONTRIBUTING.rst +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/LICENSE +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/MANIFEST.in +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/data/predefined_classes.txt +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/labelimgplusplus.egg-info/dependency_links.txt +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/labelimgplusplus.egg-info/entry_points.txt +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/labelimgplusplus.egg-info/requires.txt +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/labelimgplusplus.egg-info/top_level.txt +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/__init__.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/core/__init__.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/core/keypoint_config.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/formats/__init__.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/formats/yolo_io.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/tools/__init__.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/tools/label_checker.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/utils/__init__.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/utils/constants.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/utils/hashableQListWidgetItem.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/utils/ustr.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/__init__.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/colorDialog.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/combobox.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/default_label_combobox.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/labelCheckerDialog.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/labelDialog.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/lightWidget.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/statsWidget.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/libs/widgets/zoomWidget.py +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/resources.qrc +0 -0
- {labelimgplusplus-2.3.2 → labelimgplusplus-2.4.0}/setup.cfg +0 -0
|
@@ -1,6 +1,97 @@
|
|
|
1
1
|
History
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
2.4.0 (2026-06-09)
|
|
5
|
+
------------------
|
|
6
|
+
|
|
7
|
+
HiDPI scaling release. The interface now scales consistently on high-density
|
|
8
|
+
and fractionally-scaled displays: chrome, dialogs, stylesheets, and the canvas
|
|
9
|
+
grab tolerance all grow by the same factor that already drove icon sizing.
|
|
10
|
+
Backward compatible — every change is a no-op at the standard 96 DPI baseline,
|
|
11
|
+
so non-HiDPI displays are unchanged.
|
|
12
|
+
|
|
13
|
+
New features
|
|
14
|
+
~~~~~~~~~~~~
|
|
15
|
+
|
|
16
|
+
* Scale the full UI for HiDPI displays from a single DPI factor (#66) —
|
|
17
|
+
dialog and dock minimum sizes, status-bar labels, keypoint-panel
|
|
18
|
+
indicators, gallery preset controls, the collapsible toolbar, every
|
|
19
|
+
stylesheet padding/margin/border/font-size value, and the canvas
|
|
20
|
+
hit-test radius
|
|
21
|
+
|
|
22
|
+
Bug fixes
|
|
23
|
+
~~~~~~~~~
|
|
24
|
+
|
|
25
|
+
* Fix a ``ModuleNotFoundError`` crash when selecting the "Auto" toolbar icon
|
|
26
|
+
size — the handler imported from a stale ``libs.toolBar`` path (#93)
|
|
27
|
+
|
|
28
|
+
Internal
|
|
29
|
+
~~~~~~~~
|
|
30
|
+
|
|
31
|
+
* Add ``libs/utils/dpi.py`` as the single source of truth for screen scaling
|
|
32
|
+
(``get_dpi_scale_factor`` + ``scale_px``); chrome and stylesheets now scale
|
|
33
|
+
through it instead of recomputing DPI per site
|
|
34
|
+
|
|
35
|
+
2.3.3 (2026-06-09)
|
|
36
|
+
------------------
|
|
37
|
+
|
|
38
|
+
Security, correctness, and reliability release. Hardens settings storage and
|
|
39
|
+
annotation parsing against untrusted input, closes several undo/redo gaps, and
|
|
40
|
+
decomposes the monolithic main window into focused, unit-tested modules. No new
|
|
41
|
+
features and no breaking changes.
|
|
42
|
+
|
|
43
|
+
Security
|
|
44
|
+
~~~~~~~~
|
|
45
|
+
|
|
46
|
+
* Store user settings as JSON instead of a Python pickle, removing an
|
|
47
|
+
arbitrary-code-execution vector (the old ``~/.labelImgSettings.pkl`` is no
|
|
48
|
+
longer read; settings start fresh on upgrade)
|
|
49
|
+
* Harden the PASCAL VOC XML reader against entity-expansion (billion-laughs)
|
|
50
|
+
and external-entity / network (XXE) attacks
|
|
51
|
+
|
|
52
|
+
Bug fixes
|
|
53
|
+
~~~~~~~~~
|
|
54
|
+
|
|
55
|
+
* Make whole-shape moves, rectangle resizes, arrow-key nudges, the
|
|
56
|
+
context-menu "Move here", and in-mode keypoint Ctrl-Z all undoable — these
|
|
57
|
+
mutations previously bypassed the undo stack (#68)
|
|
58
|
+
* Defer the annotation-format switch until the reader succeeds for the YOLO and
|
|
59
|
+
PASCAL VOC loaders, so a malformed file no longer flips the saved format;
|
|
60
|
+
PASCAL VOC now reports parse errors gracefully instead of crashing (#69)
|
|
61
|
+
* Stop PASCAL VOC bounding-box coordinate data loss on save (round rather than
|
|
62
|
+
truncate), and round polygon coordinates likewise
|
|
63
|
+
* Harden the COCO, YOLO-seg, and CreateML readers against malformed input
|
|
64
|
+
* Report a clear error instead of crashing when an annotation file is opened
|
|
65
|
+
as an image
|
|
66
|
+
* Restore label-list ordering on delete and refresh the label combo on edit so
|
|
67
|
+
undo/redo stays consistent
|
|
68
|
+
* Surface batch-verify failures instead of silently swallowing them
|
|
69
|
+
* Validate imported shortcut configurations instead of crashing on bad input
|
|
70
|
+
* Deep-copy points in ``Shape.copy()`` and preserve a ``None`` label
|
|
71
|
+
* Correct the label-fix status message and make "Reset All" relaunch through
|
|
72
|
+
the Python interpreter so installed entry points restart correctly
|
|
73
|
+
* Theme the gallery regardless of the thumbnail-size slider, and source the
|
|
74
|
+
keypoint-panel and shortcuts-dialog colors from the active palette
|
|
75
|
+
* Zoom-scale the keypoint hit-test and cache the canvas overlay composite
|
|
76
|
+
|
|
77
|
+
Packaging
|
|
78
|
+
~~~~~~~~~
|
|
79
|
+
|
|
80
|
+
* Ship the default class list inside the installed wheel
|
|
81
|
+
* Require Python >= 3.8 and drop dead Py2 / Qt4 shims
|
|
82
|
+
|
|
83
|
+
Internal
|
|
84
|
+
~~~~~~~~
|
|
85
|
+
|
|
86
|
+
* Decompose the ~3,700-line ``MainWindow``: extract annotation loading,
|
|
87
|
+
fit-to-window scaling, the statistics controller, the gallery
|
|
88
|
+
status-refresh controller, and the format-metadata registry into focused,
|
|
89
|
+
unit-tested modules
|
|
90
|
+
* Unify annotation status / label probing across the gallery and stats views
|
|
91
|
+
* Run the CI test matrix on the ``dev`` branch and cache pip
|
|
92
|
+
* Add a real mouse-event polygon insert/drag/undo integration test (#70);
|
|
93
|
+
the full suite now runs 592 tests (up from 471)
|
|
94
|
+
|
|
4
95
|
2.3.2 (2026-05-20)
|
|
5
96
|
------------------
|
|
6
97
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: labelimgplusplus
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: labelImg++ is an enhanced graphical image annotation tool with Gallery Mode for browsing and labeling images
|
|
5
5
|
Author-email: Abhik Sarkar <abhiksark@gmail.com>
|
|
6
6
|
License: Copyright (c) <2015-Present> Tzutalin
|
|
@@ -21,15 +21,14 @@ Classifier: Intended Audience :: Developers
|
|
|
21
21
|
Classifier: Intended Audience :: Science/Research
|
|
22
22
|
Classifier: Natural Language :: English
|
|
23
23
|
Classifier: Programming Language :: Python :: 3
|
|
24
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
25
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
26
24
|
Classifier: Programming Language :: Python :: 3.8
|
|
27
25
|
Classifier: Programming Language :: Python :: 3.9
|
|
28
26
|
Classifier: Programming Language :: Python :: 3.10
|
|
29
27
|
Classifier: Programming Language :: Python :: 3.11
|
|
28
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
30
29
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
31
30
|
Classifier: Topic :: Scientific/Engineering :: Image Recognition
|
|
32
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.8
|
|
33
32
|
Description-Content-Type: text/x-rst
|
|
34
33
|
License-File: LICENSE
|
|
35
34
|
Requires-Dist: pyqt5
|
|
@@ -276,7 +275,7 @@ If you encounter issues, reset the settings:
|
|
|
276
275
|
|
|
277
276
|
.. code:: shell
|
|
278
277
|
|
|
279
|
-
rm ~/.labelImgSettings.
|
|
278
|
+
rm ~/.labelImgSettings.json
|
|
280
279
|
|
|
281
280
|
Or use **Menu > File > Reset All**
|
|
282
281
|
|