def deleteSelectedShape(self):self.remLabels(self.canvas.deleteSelected())self.setDirty()if self.noShapes():for action in self.actions.onShapesPresent:action.setEnabled(False)#yes, no = QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No#msg = self.tr(# "You are about to permanently delete {} polygons, "# "proceed anyway?"#).format(len(self.canvas.selectedShapes))#if yes == QtWidgets.QMessageBox.warning(# self, self.tr("Attention"), msg, yes | no, yes#):#self.remLabels(self.canvas.deleteSelected())#self.setDirty()#if self.noShapes():# for action in self.actions.onShapesPresent:# action.setEnabled(False)
def save(self,filename,shapes,imagePath,imageHeight,imageWidth,imageData=None,otherData=None,flags=None,):if imageData is not None:imageData = base64.b64encode(imageData).decode("utf-8")imageHeight, imageWidth = self._check_image_height_and_width(imageData, imageHeight, imageWidth)if otherData is None:otherData = {}if flags is None:flags = {}data = dict(version=__version__,flags=flags,shapes=shapes,imagePath=imagePath,# imageData=imageData,imageData=None,imageHeight=imageHeight,imageWidth=imageWidth,)for key, value in otherData.items():assert key not in datadata[key] = valuetry:with open(filename, "w") as f:json.dump(data, f, ensure_ascii=False, indent=2)self.filename = filenameexcept Exception as e:raise LabelFileError(e)
image list 列表按照資源管理器進行排序,順序顯示圖像 找到./python/site-packages/labelme/app.py 首先 import natsort,如果沒有安裝,可以pip install natsort安裝
def scanAllImages(self, folderPath):extensions = [".%s" % fmt.data().decode().lower()for fmt in QtGui.QImageReader.supportedImageFormats()]images = []for root, dirs, files in os.walk(folderPath):for file in files:if file.lower().endswith(tuple(extensions)):relativePath = osp.join(root, file)images.append(relativePath)# images.sort(key=lambda x: x.lower())images = natsort.natsorted(images)return images