labelme教程_label shop

labelme教程_label shopdelete删除标签时,不再弹出对话框找到./python/site-packages/labelme/app.pydefdeleteSelectedShape(self):self.remLabels(self.canvas.deleteSelected())self.setDirty()ifself.noShapes():foractioninself.actions.onShapesPresent:..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  1. 如何查看自己labelme安装的位置
    例如通过pip3.8安装
pip3.8 install labelme

可以通过查看pip3.8版本寻找对应的python安装位置

pip3.8 -V

然后就可以在对应版本的python下修改相应的文件

  1. 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)
  1. 选择其他图像,自动保存当前标签信息,不再弹出对话框
    找到./python/site-packages/labelme/app.py
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
  1. imageData 不再存储 image的信息,减少json存储大小
    找到./python/site-packages/labelme/label_file.py
    imageData=imageData 改为 imageData=None
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)
  1. 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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197702.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sftp常用命令介绍_手机命令代码

    sftp常用命令介绍_手机命令代码一、SFTP简述二、SFTP服务配置(基于CentOS7)三、SFTP常用命令四、Java代码实现SFTP操作(JSch实现上传、下载、监视器)源码请见Github:https://github.com/qiezhichao/CodeHelper/tree/master/j_sftp五、踩坑记录一、SFTP简述sftp(SecureFileTransfer…

    2022年4月19日
  • 【SpringCloud】微服务笔记

    【SpringCloud】微服务笔记集中什么是微服务架构:1597213385700SpringCloud是微服务一站式服务解决方案,微服务全家桶。它是微服务开发的主流技术栈。它采用了名称,而非数字版本号。s方法gCloud和springCloudAlibaba目前是最主流的微服务框架组合。版本选择:选用springboot和springCloud版本有约束,不按照它的约束会有冲突。版本问题本次学习的各种软件的版本:boot使用的是数字作为版本。官网强烈建议升级到2.0以上cloud使用的是字母作为版本,伦

    2022年5月22日
  • C/C++之makefile写法

    C/C++之makefile写法参考:https://www.cnblogs.com/owlman/p/5514724.html什么是makefileMakefile文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile的好处是能够使用一行命令来完成…

    2022年5月1日
  • Arduino教程 RFID-RC522读IC卡门禁原理及破解防御[通俗易懂]

    【文章特色:1、提出IC卡破解原理和简单有效的防御方法2、网上其他文章对于硬件如何接线说得模糊不清】1、序言2、加载RC522库文件3、模块引脚接线4、程序代码5、运行结果先说下简单门禁系统的原理:(1)IC卡激活:门禁卡管理员将卡片放到读卡器、这时软件读取到IC卡的UID序列号信息(相当于身份证号码),将这个UID录入数据库激活IC卡。(2)刷卡

    2022年4月17日
  • laravel 循环中子元素使用&符号嵌入到父级,经典版

    laravel 循环中子元素使用&符号嵌入到父级,经典版

    2021年11月9日
  • android service和activity的通讯

    android service和activity的通讯

    2022年1月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号