pip3.8 install labelme
可以通过查看pip3.8版本寻找对应的python安装位置
pip3.8 -V
然后就可以在对应版本的python下修改相应的文件
delete 删除标签时,不再弹出对话框
找到./python/site-packages/labelme/app.py
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 mayContinue(self):
if not self.dirty:
return True
self.saveFile()
return True
#mb = QtWidgets.QMessageBox
#msg = self.tr('Save annotations to "{}" before closing?').format(
# self.filename
#)
#answer = mb.question(
# self,
# self.tr("Save annotations?"),
# msg,
# mb.Save | mb.Discard | mb.Cancel,
# mb.Save,
#)
#if answer == mb.Discard:
# return True
#elif answer == mb.Save:
# self.saveFile()
# return True
#else: # answer == mb.Cancel
# return 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 data
data[key] = value
try:
with open(filename, "w") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
self.filename = filename
except Exception as e:
raise LabelFileError(e)
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