Bläddra i källkod

fix some bugs

Tricolops 10 månader sedan
förälder
incheckning
0f3244d604
3 ändrade filer med 16 tillägg och 6 borttagningar
  1. BIN
      labelme.7z
  2. 2 0
      labelme/app.py
  3. 14 6
      labelme/widgets/canvas.py

BIN
labelme.7z


+ 2 - 0
labelme/app.py

@@ -1240,6 +1240,8 @@ class MainWindow(QtWidgets.QMainWindow):
         self.actions.edit.setEnabled(n_selected)
 
     def addLabel(self, shape):
+        if(shape.label is None):
+            return
         if shape.group_id is None:
             text = shape.label
         else:

+ 14 - 6
labelme/widgets/canvas.py

@@ -159,7 +159,7 @@ class Canvas(QtWidgets.QWidget):
         if len(self.shapesBackups) > self.num_backups:
             self.shapesBackups = self.shapesBackups[-self.num_backups - 1 :]
         self.shapesBackups.append(shapesBackup)
-
+        
     @property
     def isShapeRestorable(self):
         # We save the state AFTER each edit (not before) so for an
@@ -175,6 +175,7 @@ class Canvas(QtWidgets.QWidget):
         # and app.py::loadShapes and our own Canvas::loadShapes function.
         if not self.isShapeRestorable:
             return
+        print(f"shape is restorable")
         self.shapesBackups.pop()  # latest
 
         # The application will eventually call Canvas.loadShapes which will
@@ -363,7 +364,7 @@ class Canvas(QtWidgets.QWidget):
                 self.setStatusTip(self.toolTip())
                 self.update()
                 break
-            elif shape.containsPoint(pos):
+            elif len(shape.points)!=0 and shape.containsPoint(pos) :
                 if self.selectedVertex():
                     self.hShape.highlightClear()
                 self.prevhVertex = self.hVertex
@@ -850,8 +851,9 @@ class Canvas(QtWidgets.QWidget):
             )
         elif self.pred_bbox_points is not None and self.draw_pred:
             print("pred mode on")
+            current_copy=self.current.copy()
             for bbox_point in self.pred_bbox_points:
-                drawing_shape=self.current.copy()
+                drawing_shape=current_copy.copy()
                 drawing_shape.setShapeRefined(
                     shape_type="polygon",
                     points=[QtCore.QPointF(point[0], point[1]) for point in bbox_point],
@@ -862,8 +864,11 @@ class Canvas(QtWidgets.QWidget):
                 self.storeShapes()
                 self.update()
                 self.newShape.emit()
-            self.current.close()
-            self.current = None
+            current_copy.close()
+            current_copy=None
+            if(self.current):
+                self.current.close()
+                self.current = None
             self.setHiding(False)
             self.draw_pred=False
             return
@@ -1036,6 +1041,8 @@ class Canvas(QtWidgets.QWidget):
 
     def setLastLabel(self, text, flags):
         assert text
+        if(self.shapes is None or len(self.shapes)==0):
+            return
         self.shapes[-1].label = text
         self.shapes[-1].flags = flags
         self.shapesBackups.pop()
@@ -1043,7 +1050,8 @@ class Canvas(QtWidgets.QWidget):
         return self.shapes[-1]
 
     def undoLastLine(self):
-        assert self.shapes
+        if(self.shapes is None or len(self.shapes)==0):
+            return
         self.current = self.shapes.pop()
         self.current.setOpen()
         self.current.restoreShapeRaw()