Exemple #1
0
def loadOldProject(data, labels_dict):

    project = Project()
    project.importLabelsFromConfiguration(labels_dict)
    map_filename = data["Map File"]

    #convert to relative paths in case:
    dir = QDir(os.getcwd())
    map_filename = dir.relativeFilePath(map_filename)
    image_name = os.path.basename(map_filename)
    image_name = image_name[:-4]
    image = Image(id=image_name)
    image.map_px_to_mm_factor = data["Map Scale"]
    image.acquisition_date = "1955-11-05"
    channel = Channel(filename=map_filename, type="RGB")
    image.channels.append(channel)

    for blob_data in data["Segmentation Data"]:
        blob = Blob(None, 0, 0, 0)
        blob.fromDict(blob_data)
        blob.setId(int(
            blob.id))  # id should be set again to update related info
        image.annotations.addBlob(blob)

    project.images.append(image)
    return project
Exemple #2
0
    def apply(self):
        if len(self.edit_points.points) == 0:
            self.infoMessage.emit(
                "You need to draw something for this operation.")
            return

        blob = Blob(None, 0, 0, 0)

        try:
            flagValid = blob.createFromClosedCurve(self.edit_points.points)
        except Exception:
            self.infoMessage.emit("Failed creating area.")
            self.log.emit(
                "[TOOL][FREEHAND] FREEHAND operation not done (invalid snap).")
            return

        if flagValid is True:
            blob.setId(self.viewerplus.annotations.getFreeId())

            self.viewerplus.resetSelection()
            self.viewerplus.addBlob(blob, selected=True)
            self.blobInfo.emit(blob, "[TOOL][FREEHAND][BLOB-CREATED]")
            self.viewerplus.saveUndo()

            self.log.emit("[TOOL][FREEHAND] Operation ends.")

        else:
            self.log.emit("[TOOL][FREEHAND] Operation ends (INVALID SNAP!).")
            return

        self.viewerplus.resetTools()