图片标注工具LabelImg打包生成exe直接可执行文件

本文介绍了如何将LabelImg图片标注工具打包成可执行文件,以解决V1.8.1版本的使用问题,并重点在于去除打包后的exe文件中的命令窗口,以提升标注效率。作者提供了从安装到打包的详细步骤,包括使用PyInstaller工具和自定义预设分类名的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行深度学习时,图片标注一般需要多人分工合作进行,把图片标注工具labelImg打包成直接可执行的文件,直接拷贝到需要使用的电脑上,并统一设置分类类别和名称,将极大提高效率。

LabelImg的 github官网上直接挂载了windows的可执行文件,V1.8.1, 下载后使用体验极其不佳,几乎无法使用。代码已经更新到了v1.8.6,但作者并没有同步更新可执行文件。

网上可找到的一些打包的文件,尤其是需要花银子买到的一个版本,版本是最新的,但时打包成了一个单独的exe文件,无法修改预设的分类名称列表,造成标记工作繁琐而不完美。我第一次使用时甚至自己编了一个程序专门去批量修正标记文件中的分类序号。

因此,本文打包目的是保留源码文件中的data/predefined_classes.txt的可编辑性,另外就是去掉每次执行时弹出的黑色命令窗口。

本文参考文章 LabelImage安装以及打包exe教程,win10+anaconda3-CSDN博客

第一步:下载安装labelImg

严格按照我的上一篇文章操作即可: 图像标注工具LabelImg从安装到使用,并解决闪退问题-CSDN博客

第二步: 安装打包工具

(labelimg) E:\python_dev\labelImg-master>pip install pyinstaller -i https://mirrors.aliyun.com/pypi/simple/

 Successfully installed altgraph-0.17.4 importlib-metadata-4.8.3 pefile-2023.2.7 pyinstaller-4.10 pyinstaller-hooks-contrib-2022.0 pywin32-ctypes-0.2.2 typing-extensions-4.1.1 zipp-3.6.0

第三步: 执行打包指令

 (labelimg) E:\python_dev\labelImg-master>pyinstaller --hidden-import=pyqt5 --hidden-import=lxml -D labelImg.py -p ./libs -p ./

输出提示中虽然出现了下面的错误提示,但最终打包是成功的

4695 INFO: Analyzing hidden import 'pyqt5'

4697 ERROR: Hidden import 'pyqt5' not found

等待执行完毕后, 在labelImg-master/dist 下面会创建文件夹 labelimg , 将其剪切到其他路径下,并将源码中的labelImg-master/data 目录,复制到labelimg目录下,打开predefined_classes.txt并创建自己的分类名称,即可双击 labelimg.exe 执行。

这个指令是有命令窗口的,

尝试去掉弹出的命令窗口, 在指令最后加参数 -w

(labelimg) E:\python_dev\labelImg-master>pyinstaller --hidden-import=pyqt5 --hidden-import=lxml -D labelImg.py -p ./libs -p ./ -w

执行成功,且没有命令窗口了。

生成的文件内容如下:

### 将LabelImg打包可执行文件 为了将LabelImg项目转换为独立的Windows可执行文件,可以使用PyInstaller工具。以下是具体方法: #### 安装依赖库 确保安装了必要的Python包来支持LabelImg运行以及PyInstaller本身。 ```bash pip install pyqt5 lxml pyinstaller ``` #### 准备环境 确认已经克隆或下载了完整的LabelImg源码仓库到本地计算机上,并进入该目录操作[^1]。 #### 使用PyInstaller命令构建EXE 通过指定额外的数据资源路径参数`--add-data`加入图标或其他静态资源文件夹;利用`--windowed`选项移除控制台窗口显示;最后借助`--onefile`标志创建单个输出文件而非整个dist目录结构。 ```bash pyinstaller labelImg.py --add-data ./resources:resources --hidden-import=xml.etree.cElementTree --windowed --onefile ``` 此指令会读取当前工作区内的`labelImg.py`作为入口脚本并处理其关联的所有必要组件与配置项。 #### 处理特定模块编译需求(如果适用) 对于某些情况下可能存在的Cython化Python扩展模块,则需按照如下方式设置build过程中的预编译步骤[^2]。 ```python from distutils.core import setup from Cython.Build import cythonize setup( ext_modules=cythonize(["*.pyx"]) ) ``` 上述代码片段适用于存在`.pyx`结尾的Cyton C扩展定义的情形,在实际针对LabelImg打包时不涉及此类情况所以不必特别关注这部分内容除非遇到特殊问题提示需要这样做。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值