mirror of
https://github.com/wassname/sloth.git
synced 2026-07-06 05:16:56 +08:00
Load images via LabelTool/Container
This commit is contained in:
@@ -14,7 +14,7 @@ try:
|
||||
import yaml
|
||||
except:
|
||||
pass
|
||||
|
||||
import okapy
|
||||
|
||||
class AnnotationContainerFactory:
|
||||
def __init__(self, containers):
|
||||
|
||||
@@ -172,6 +172,10 @@ class LabelTool(QObject):
|
||||
self._current_image = image
|
||||
self.currentImageChanged.emit(self._current_image.index())
|
||||
|
||||
def getImage(self, item):
|
||||
# TODO: Also handle video frames
|
||||
self.container_.loadImage(item.filename())
|
||||
|
||||
def getAnnotationFilePatterns(self):
|
||||
return self.container_factory_.patterns()
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ class AnnotationScene(QGraphicsScene):
|
||||
|
||||
# TODO signal itemadded
|
||||
|
||||
def __init__(self, items=None, inserters=None, parent=None):
|
||||
def __init__(self, labeltool, items=None, inserters=None, parent=None):
|
||||
super(AnnotationScene, self).__init__(parent)
|
||||
|
||||
self.model_ = None
|
||||
@@ -22,6 +22,7 @@ class AnnotationScene(QGraphicsScene):
|
||||
self.debug_ = True
|
||||
self.message_ = ""
|
||||
self.last_key_ = None
|
||||
self.labeltool_ = labeltool
|
||||
|
||||
self.itemfactory_ = Factory(items)
|
||||
self.inserterfactory_ = Factory(inserters)
|
||||
@@ -79,7 +80,8 @@ class AnnotationScene(QGraphicsScene):
|
||||
return
|
||||
|
||||
assert self.root_.model() == self.model_
|
||||
self.image_ = self.root_.data(ImageRole).toPyObject()
|
||||
item = self.model_.itemFromIndex(root)
|
||||
self.image_ = self.labeltool_.getImage(item)
|
||||
self.pixmap_ = QPixmap(okapy.guiqt.toQImage(self.image_))
|
||||
item = QGraphicsPixmapItem(self.pixmap_)
|
||||
item.setZValue(-1)
|
||||
|
||||
@@ -91,7 +91,7 @@ class MainWindow(QMainWindow):
|
||||
def setupGui(self):
|
||||
self.ui = uic.loadUi(os.path.join(GUIDIR, "labeltool.ui"), self)
|
||||
|
||||
self.scene = AnnotationScene(items=config.ITEMS, inserters=config.INSERTERS)
|
||||
self.scene = AnnotationScene(self.labeltool, items=config.ITEMS, inserters=config.INSERTERS)
|
||||
self.view = GraphicsView(self)
|
||||
self.view.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
|
||||
self.view.setScene(self.scene)
|
||||
|
||||
Reference in New Issue
Block a user