Explorar el Código

Add self._config["canvas"]["fill_drawing"]

Kentaro Wada hace 2 años
padre
commit
43b71888d3
Se han modificado 3 ficheros con 11 adiciones y 2 borrados
  1. 2 1
      labelme/app.py
  2. 2 1
      labelme/config/default_config.yaml
  3. 7 0
      labelme/widgets/canvas.py

+ 2 - 1
labelme/app.py

@@ -575,7 +575,8 @@ class MainWindow(QtWidgets.QMainWindow):
             checkable=True,
             enabled=True,
         )
-        fill_drawing.trigger()
+        if self._config["canvas"]["fill_drawing"]:
+            fill_drawing.trigger()
 
         # Lavel list context menu.
         labelMenu = QtWidgets.QMenu()

+ 2 - 1
labelme/config/default_config.yaml

@@ -22,7 +22,7 @@ label_colors: null
 shape:
   # drawing
   line_color: [0, 255, 0, 128]
-  fill_color: [0, 255, 0, 0]  # transparent
+  fill_color: [0, 255, 0, 64]
   vertex_fill_color: [0, 255, 0, 255]
   # selecting / hovering
   select_line_color: [255, 255, 255, 255]
@@ -62,6 +62,7 @@ fit_to_content:
 # canvas
 epsilon: 10.0
 canvas:
+  fill_drawing: false
   # None: do nothing
   # close: close polygon
   double_click: close

+ 7 - 0
labelme/widgets/canvas.py

@@ -4,6 +4,7 @@ from qtpy import QtWidgets
 
 import labelme.ai
 from labelme import QT5
+from labelme.logger import logger
 from labelme.shape import Shape
 import labelme.utils
 
@@ -735,6 +736,12 @@ class Canvas(QtWidgets.QWidget):
             and len(self.current.points) >= 2
         ):
             drawing_shape = self.current.copy()
+            if drawing_shape.fill_color.getRgb()[3] == 0:
+                logger.warning(
+                    "fill_drawing=true, but fill_color is transparent,"
+                    " so forcing to be opaque."
+                )
+                drawing_shape.fill_color.setAlpha(64)
             drawing_shape.addPoint(self.line[1])
             drawing_shape.fill = True
             drawing_shape.paint(p)