labelimgplusplus 2.3.1__tar.gz → 2.3.2__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.1 → labelimgplusplus-2.3.2}/HISTORY.rst +24 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/PKG-INFO +1 -1
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelImgPlusPlus.py +12 -5
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/PKG-INFO +1 -1
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/__init__.py +2 -2
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/formats/create_ml_io.py +3 -4
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/formats/yolo_io.py +21 -3
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/resources.py +43 -43
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/tools/label_checker.py +0 -2
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/pyproject.toml +1 -1
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/CONTRIBUTING.rst +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/LICENSE +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/MANIFEST.in +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/README.rst +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/data/predefined_classes.txt +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/SOURCES.txt +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/dependency_links.txt +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/entry_points.txt +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/requires.txt +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/top_level.txt +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/core/__init__.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/core/commands.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/core/keypoint_config.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/core/settings.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/core/shape.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/core/shortcut_config.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/formats/__init__.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/formats/coco_io.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/formats/labelFile.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/formats/pascal_voc_io.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/formats/yolo_seg_io.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/tools/__init__.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/tools/dataset_splitter.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/utils/__init__.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/utils/constants.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/utils/hashableQListWidgetItem.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/utils/stringBundle.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/utils/styles.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/utils/ustr.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/utils/utils.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/__init__.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/batchVerifyDialog.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/canvas.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/colorDialog.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/combobox.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/default_label_combobox.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/galleryWidget.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/keypointPanel.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/labelCheckerDialog.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/labelDialog.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/lightWidget.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/shortcutsDialog.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/splitDialog.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/statsWidget.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/toolBar.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/libs/widgets/zoomWidget.py +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/resources.qrc +0 -0
- {labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/setup.cfg +0 -0
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
History
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
2.3.2 (2026-05-20)
|
|
5
|
+
------------------
|
|
6
|
+
|
|
7
|
+
Patch release hardening the annotation format loaders against malformed
|
|
8
|
+
input. Slightly corrupt or hand-edited label files previously crashed the
|
|
9
|
+
load or silently dropped valid annotations.
|
|
10
|
+
|
|
11
|
+
* Skip individual malformed YOLO lines instead of discarding the whole
|
|
12
|
+
file — a line with non-numeric values no longer raises an error that
|
|
13
|
+
drops every annotation in that file
|
|
14
|
+
* Report corrupt CreateML JSON through an error dialog instead of
|
|
15
|
+
silently loading zero annotations, and defer the format switch until
|
|
16
|
+
the reader succeeds so a bad file no longer flips the saved format
|
|
17
|
+
* Fix the CreateML branch of label extraction, which passed the wrong
|
|
18
|
+
number of constructor arguments and could never return labels
|
|
19
|
+
* Replace a mutable default argument in the YOLO writer that could leak
|
|
20
|
+
class names across files and corrupt class indices in ``classes.txt``
|
|
21
|
+
* Guard ``load_predefined_classes`` against a missing class-file path
|
|
22
|
+
|
|
23
|
+
Internal: tolerate a PyQt5/coverage shutdown segfault in CI, ignore
|
|
24
|
+
coverage and local working-directory artifacts, and add 8 regression
|
|
25
|
+
tests (full suite now 471 passing).
|
|
26
|
+
|
|
27
|
+
|
|
4
28
|
2.3.1 (2026-05-14)
|
|
5
29
|
------------------
|
|
6
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: labelimgplusplus
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.2
|
|
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
|
|
@@ -3384,7 +3384,7 @@ class MainWindow(QMainWindow, WindowMixin):
|
|
|
3384
3384
|
self.set_dirty()
|
|
3385
3385
|
|
|
3386
3386
|
def load_predefined_classes(self, predef_classes_file):
|
|
3387
|
-
if os.path.exists(predef_classes_file)
|
|
3387
|
+
if predef_classes_file and os.path.exists(predef_classes_file):
|
|
3388
3388
|
with codecs.open(predef_classes_file, 'r', 'utf8') as f:
|
|
3389
3389
|
for line in f:
|
|
3390
3390
|
line = line.strip()
|
|
@@ -3445,10 +3445,17 @@ class MainWindow(QMainWindow, WindowMixin):
|
|
|
3445
3445
|
if os.path.isfile(json_path) is False:
|
|
3446
3446
|
return
|
|
3447
3447
|
|
|
3448
|
-
|
|
3448
|
+
try:
|
|
3449
|
+
create_ml_parse_reader = CreateMLReader(json_path, file_path)
|
|
3450
|
+
shapes = create_ml_parse_reader.get_shapes()
|
|
3451
|
+
except Exception as e:
|
|
3452
|
+
self.error_message(
|
|
3453
|
+
'Annotation Error',
|
|
3454
|
+
f'Error loading CreateML annotations from '
|
|
3455
|
+
f'{os.path.basename(json_path)}: {e}')
|
|
3456
|
+
return
|
|
3449
3457
|
|
|
3450
|
-
|
|
3451
|
-
shapes = create_ml_parse_reader.get_shapes()
|
|
3458
|
+
self.set_format(FORMAT_CREATEML)
|
|
3452
3459
|
self.load_labels(shapes)
|
|
3453
3460
|
self.canvas.verified = create_ml_parse_reader.verified
|
|
3454
3461
|
|
|
@@ -3832,7 +3839,7 @@ class MainWindow(QMainWindow, WindowMixin):
|
|
|
3832
3839
|
json_path = base_path + JSON_EXT
|
|
3833
3840
|
if os.path.exists(json_path):
|
|
3834
3841
|
try:
|
|
3835
|
-
reader = CreateMLReader(json_path)
|
|
3842
|
+
reader = CreateMLReader(json_path, img_path)
|
|
3836
3843
|
shapes = reader.get_shapes()
|
|
3837
3844
|
labels = [shape[0] for shape in shapes]
|
|
3838
3845
|
except Exception:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: labelimgplusplus
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.2
|
|
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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# libs/__init__.py
|
|
2
2
|
"""LabelImg++ library package."""
|
|
3
3
|
|
|
4
|
-
__version_info__ = ('2', '3', '
|
|
5
|
-
__version__ = '2.3.
|
|
4
|
+
__version_info__ = ('2', '3', '2')
|
|
5
|
+
__version__ = '2.3.2'
|
|
6
6
|
|
|
7
7
|
# Re-export subpackages for convenient access
|
|
8
8
|
from libs import core, formats, widgets, utils
|
|
@@ -87,10 +87,9 @@ class CreateMLReader:
|
|
|
87
87
|
self.shapes = []
|
|
88
88
|
self.verified = False
|
|
89
89
|
self.filename = os.path.basename(file_path)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
print("JSON decoding failed")
|
|
90
|
+
# Let parse failures propagate so callers can surface them, instead
|
|
91
|
+
# of silently swallowing a malformed file into an empty shape list.
|
|
92
|
+
self.parse_json()
|
|
94
93
|
|
|
95
94
|
def parse_json(self):
|
|
96
95
|
with open(self.json_path, "r") as file:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding: utf8 -*-
|
|
3
|
+
# libs/formats/yolo_io.py
|
|
3
4
|
import codecs
|
|
4
5
|
import os
|
|
5
6
|
|
|
@@ -25,7 +26,10 @@ class YOLOWriter:
|
|
|
25
26
|
bnd_box['difficult'] = difficult
|
|
26
27
|
self.box_list.append(bnd_box)
|
|
27
28
|
|
|
28
|
-
def bnd_box_to_yolo_line(self, box, class_list=
|
|
29
|
+
def bnd_box_to_yolo_line(self, box, class_list=None):
|
|
30
|
+
if class_list is None:
|
|
31
|
+
class_list = []
|
|
32
|
+
|
|
29
33
|
x_min = box['xmin']
|
|
30
34
|
x_max = box['xmax']
|
|
31
35
|
y_min = box['ymin']
|
|
@@ -46,7 +50,10 @@ class YOLOWriter:
|
|
|
46
50
|
|
|
47
51
|
return class_index, x_center, y_center, w, h
|
|
48
52
|
|
|
49
|
-
def save(self, class_list=
|
|
53
|
+
def save(self, class_list=None, target_file=None):
|
|
54
|
+
if class_list is None:
|
|
55
|
+
class_list = []
|
|
56
|
+
|
|
50
57
|
if target_file is None:
|
|
51
58
|
out_path = self.filename + TXT_EXT
|
|
52
59
|
else:
|
|
@@ -140,8 +147,19 @@ class YoloReader:
|
|
|
140
147
|
continue # Skip malformed lines
|
|
141
148
|
class_index, x_center, y_center, w, h = parts
|
|
142
149
|
|
|
150
|
+
# Validate that all tokens are numeric - a line can have the
|
|
151
|
+
# right token count yet still hold garbage. Skip gracefully
|
|
152
|
+
# instead of raising ValueError out of the reader.
|
|
153
|
+
try:
|
|
154
|
+
idx = int(class_index)
|
|
155
|
+
x_center, y_center, w, h = (
|
|
156
|
+
float(x_center), float(y_center), float(w), float(h))
|
|
157
|
+
except ValueError:
|
|
158
|
+
print(f"Warning: Skipping invalid annotation in {self.file_path}: "
|
|
159
|
+
f"line {line_num} has non-numeric values")
|
|
160
|
+
continue # Skip this line, continue with next
|
|
161
|
+
|
|
143
162
|
# Validate class index - skip invalid lines gracefully
|
|
144
|
-
idx = int(class_index)
|
|
145
163
|
if idx < 0 or idx >= len(self.classes):
|
|
146
164
|
print(f"Warning: Skipping invalid annotation in {self.file_path}: "
|
|
147
165
|
f"class index {idx} at line {line_num} is out of range "
|
|
@@ -4195,91 +4195,91 @@ qt_resource_struct_v2 = b"\
|
|
|
4195
4195
|
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x2b\x00\x00\x00\x01\
|
|
4196
4196
|
\x00\x00\x00\x00\x00\x00\x00\x00\
|
|
4197
4197
|
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
|
4198
|
-
\x00\x00\x01\x9e\
|
|
4198
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa4\
|
|
4199
4199
|
\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x7a\x97\
|
|
4200
|
-
\x00\x00\x01\x9e\
|
|
4200
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4201
4201
|
\x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x7b\xd5\
|
|
4202
|
-
\x00\x00\x01\x9e\
|
|
4202
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4203
4203
|
\x00\x00\x00\x24\x00\x00\x00\x00\x00\x01\x00\x00\x7e\x0a\
|
|
4204
|
-
\x00\x00\x01\x9e\
|
|
4204
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4205
4205
|
\x00\x00\x00\x32\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x3f\
|
|
4206
|
-
\x00\x00\x01\x9e\
|
|
4206
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4207
4207
|
\x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x80\x1c\
|
|
4208
|
-
\x00\x00\x01\x9e\
|
|
4208
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4209
4209
|
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x81\x2d\
|
|
4210
|
-
\x00\x00\x01\x9e\
|
|
4210
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4211
4211
|
\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x82\x50\
|
|
4212
|
-
\x00\x00\x01\x9e\
|
|
4212
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4213
4213
|
\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x83\x84\
|
|
4214
|
-
\x00\x00\x01\x9e\
|
|
4214
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4215
4215
|
\x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x85\x23\
|
|
4216
|
-
\x00\x00\x01\x9e\
|
|
4216
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4217
4217
|
\x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x86\x00\
|
|
4218
|
-
\x00\x00\x01\x9e\
|
|
4218
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4219
4219
|
\x00\x00\x00\x94\x00\x00\x00\x00\x00\x01\x00\x00\x87\x11\
|
|
4220
|
-
\x00\x00\x01\x9e\
|
|
4220
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4221
4221
|
\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x87\xef\
|
|
4222
|
-
\x00\x00\x01\x9e\
|
|
4222
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4223
4223
|
\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x88\xfe\
|
|
4224
|
-
\x00\x00\x01\x9e\
|
|
4224
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4225
4225
|
\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x36\
|
|
4226
|
-
\x00\x00\x01\x9e\
|
|
4226
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4227
4227
|
\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x8b\x86\
|
|
4228
|
-
\x00\x00\x01\x9e\
|
|
4228
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4229
4229
|
\x00\x00\x00\xda\x00\x00\x00\x00\x00\x01\x00\x00\x8c\x8f\
|
|
4230
|
-
\x00\x00\x01\x9e\
|
|
4230
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4231
4231
|
\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x8d\x95\
|
|
4232
|
-
\x00\x00\x01\x9e\
|
|
4232
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4233
4233
|
\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x8e\x99\
|
|
4234
|
-
\x00\x00\x01\x9e\
|
|
4234
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4235
4235
|
\x00\x00\x01\x08\x00\x00\x00\x00\x00\x01\x00\x00\x8f\x84\
|
|
4236
|
-
\x00\x00\x01\x9e\
|
|
4236
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4237
4237
|
\x00\x00\x01\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x90\xd6\
|
|
4238
|
-
\x00\x00\x01\x9e\
|
|
4238
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa8\
|
|
4239
4239
|
\x00\x00\x01\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x9b\x2a\
|
|
4240
|
-
\x00\x00\x01\x9e\
|
|
4240
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa8\
|
|
4241
4241
|
\x00\x00\x01\x5c\x00\x00\x00\x00\x00\x01\x00\x00\xa4\x77\
|
|
4242
|
-
\x00\x00\x01\x9e\
|
|
4242
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa8\
|
|
4243
4243
|
\x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\xb0\xcb\
|
|
4244
|
-
\x00\x00\x01\x9e\
|
|
4244
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4245
4245
|
\x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x00\xb3\xe1\
|
|
4246
|
-
\x00\x00\x01\x9e\
|
|
4246
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4247
4247
|
\x00\x00\x01\xb0\x00\x00\x00\x00\x00\x01\x00\x00\xb5\x2d\
|
|
4248
|
-
\x00\x00\x01\x9e\
|
|
4248
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4249
4249
|
\x00\x00\x01\xc6\x00\x00\x00\x00\x00\x01\x00\x00\xb6\x59\
|
|
4250
|
-
\x00\x00\x01\x9e\
|
|
4250
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4251
4251
|
\x00\x00\x01\xe0\x00\x00\x00\x00\x00\x01\x00\x00\xb7\x56\
|
|
4252
|
-
\x00\x00\x01\x9e\
|
|
4252
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4253
4253
|
\x00\x00\x01\xf2\x00\x00\x00\x00\x00\x01\x00\x00\xb8\xd9\
|
|
4254
|
-
\x00\x00\x01\x9e\
|
|
4254
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4255
4255
|
\x00\x00\x02\x04\x00\x00\x00\x00\x00\x01\x00\x00\xba\xe5\
|
|
4256
|
-
\x00\x00\x01\x9e\
|
|
4256
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4257
4257
|
\x00\x00\x02\x24\x00\x00\x00\x00\x00\x01\x00\x00\xbd\x1a\
|
|
4258
|
-
\x00\x00\x01\x9e\
|
|
4258
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4259
4259
|
\x00\x00\x02\x36\x00\x00\x00\x00\x00\x01\x00\x00\xbe\x78\
|
|
4260
|
-
\x00\x00\x01\x9e\
|
|
4260
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4261
4261
|
\x00\x00\x02\x4e\x00\x00\x00\x00\x00\x01\x00\x00\xbf\x9b\
|
|
4262
|
-
\x00\x00\x01\x9e\
|
|
4262
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa4\
|
|
4263
4263
|
\x00\x00\x02\x60\x00\x00\x00\x00\x00\x01\x00\x00\xc0\xad\
|
|
4264
|
-
\x00\x00\x01\x9e\
|
|
4264
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4265
4265
|
\x00\x00\x02\x7c\x00\x00\x00\x00\x00\x01\x00\x00\xc3\x54\
|
|
4266
|
-
\x00\x00\x01\x9e\
|
|
4266
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4267
4267
|
\x00\x00\x02\x90\x00\x00\x00\x00\x00\x01\x00\x00\xc4\x8e\
|
|
4268
|
-
\x00\x00\x01\x9e\
|
|
4268
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4269
4269
|
\x00\x00\x02\xac\x00\x00\x00\x00\x00\x01\x00\x00\xc6\xc3\
|
|
4270
|
-
\x00\x00\x01\x9e\
|
|
4270
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa8\
|
|
4271
4271
|
\x00\x00\x02\xc0\x00\x00\x00\x00\x00\x01\x00\x00\xd9\x78\
|
|
4272
|
-
\x00\x00\x01\x9e\
|
|
4272
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4273
4273
|
\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xe9\xb8\
|
|
4274
|
-
\x00\x00\x01\x9e\
|
|
4274
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4275
4275
|
\x00\x00\x03\x02\x00\x00\x00\x00\x00\x01\x00\x00\xea\x96\
|
|
4276
|
-
\x00\x00\x01\x9e\
|
|
4276
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4277
4277
|
\x00\x00\x03\x20\x00\x00\x00\x00\x00\x01\x00\x00\xeb\x8b\
|
|
4278
|
-
\x00\x00\x01\x9e\
|
|
4278
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4279
4279
|
\x00\x00\x03\x36\x00\x00\x00\x00\x00\x01\x00\x00\xec\xdd\
|
|
4280
|
-
\x00\x00\x01\x9e\
|
|
4280
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4281
4281
|
\x00\x00\x03\x4c\x00\x00\x00\x00\x00\x01\x00\x00\xf0\xa0\
|
|
4282
|
-
\x00\x00\x01\x9e\
|
|
4282
|
+
\x00\x00\x01\x9e\x44\x7a\x2d\xa5\
|
|
4283
4283
|
"
|
|
4284
4284
|
|
|
4285
4285
|
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
|
|
@@ -8,9 +8,7 @@ from difflib import SequenceMatcher
|
|
|
8
8
|
from enum import IntEnum
|
|
9
9
|
from typing import Dict, List, Optional, Set, Tuple
|
|
10
10
|
|
|
11
|
-
from libs.formats.yolo_io import YoloReader
|
|
12
11
|
from libs.formats.pascal_voc_io import PascalVocReader
|
|
13
|
-
from libs.formats.create_ml_io import CreateMLReader
|
|
14
12
|
|
|
15
13
|
|
|
16
14
|
class IssueType(IntEnum):
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "labelimgplusplus"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.2"
|
|
8
8
|
description = "labelImg++ is an enhanced graphical image annotation tool with Gallery Mode for browsing and labeling images"
|
|
9
9
|
readme = "README.rst"
|
|
10
10
|
license = {file = "LICENSE"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{labelimgplusplus-2.3.1 → labelimgplusplus-2.3.2}/labelimgplusplus.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|