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
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()