淘先锋技术网

首页 1 2 3 4 5 6 7

1. 下载源码

仓库地址:https://github.com/wkentaro/labelme

2. 前期准备

VTK在线文档:https://vtk.org/doc/nightly/html/annotated.html

2.1 安装依赖

创建好python虚拟环境后进入项目根目录

pip install -r requirements-dev.txt
# labelme界面基于pyqt进行开发,需了解信号和槽相关知识
pip install pyqt5

2.2 项目结构

只介绍核心文件

2.2.1 根目录

  • setup.py 安装文件
  • labelme 项目源码文件夹
  • labelme.spec pyinstaller配置文件

2.2.2 labelme项目源码

  • config 配置文件夹
  • icons 图标文件夹
  • translate 多语言配置文件夹
  • utils 工具文件夹
  • widgets 作者自定义qt widgets类存放文件夹
  • app.py 主要逻辑主文件

其他的文件暂时用不到

3. 常见功能修改

以下修改均在app.py完成

3.1 菜单栏新增菜单

self.menus = utils.struct(
            file=self.menu(self.tr("&File")),
            edit=self.menu(self.tr("&Edit")),
            view=self.menu(self.tr("&View")),
            help=self.menu(self.tr("&Help")),
            vtk=self.menu(self.tr("&VTK")), # 自行新增
            recentFiles=QtWidgets.QMenu(self.tr("Open &Recent")),
            labelList=labelMenu,
        )

新增VTK菜单

3.2 菜单栏下拉子菜单

在3.1代码下方添加

utils.addActions(
            self.menus.vtk, (
                vtk_setting,
            ))
# 这个action对应utils目录下qt.py的newAction函数, 返回一个QtWidgets.QAction
# def newAction(parent, text, slot=None, shortcut=None, icon=None, tip=None, checkable=False, enabled=True, checked=False,)
vtk_setting = action(
            self.tr("&VTK Setting"),
            self.your_slot, # 你对应的槽函数,触发一些函数或者打开新的QtWidget
            None,
            "edit", # 对应icons目录的图片名称
            "VTK Setting",
            enabled=True, # 能否点击
        )

3.3 新增View在右侧自定义自己的界面

更新中…

二次开发效果

在labelme增加了一个VTK三维重建的窗口,查看当前标注的切面在哪个位置。