打标工具labelImg的安装和使用

目录

安装

当前环境:pycharm+anaconda+python3.6+win10

  • 创建一个新的环境,或者使用之前的环境都可
  • 安装PyQt5(可加速) pip install PyQt5 -i https://pypi.douban.com/simple
  • 安装lxml pip install lxml
  • 下载labelImg源码https://github.com/tzutalin/labelImg
  • 解压文件夹,在该文件夹下打开powershell,shift+鼠标右键,选择打开powershell,若打开的时cmd,则在cmd下输入powershell即可转为powershell
  • 在powershell中输入pyrcc5 -o resources.py resources.qrc
  • 运行成功后再次输入python labelImg.py
  • 则可以成功打开labelImg工具

若报错:labelImg No module named 'lib.resources',在解压文件中,将resources.py文件复制到libs文件夹中,在重新输入python labelImg.py即可

在软件中Open单张图像报错:list index out of range,那是因为图片所在的文件夹中不止一张图,应该用Open Dir打开这个文件夹

方法二:在环境中直接pip3 install labelImg,自动开始安装
在prompt中直接输入labelImg,即可打开labelImg工具

在这里插入图片描述

使用

超级简单,一看就会

在这里插入图片描述

### 如何使用 LabelImg 进行图像LabelImg 是一款图形化的图像工具,主要用于记对象边界框,适用于计算机视觉领域中的数据集创建训练需求[^1]。以下是关于如何使用 LabelImg 的详细介绍: #### 安装方法 为了能够顺利运行 LabelImg 工具,可以通过 `pip` 命令进行安装。如果遇到因网络原因导致的下载失败问题,则建议将 pip 镜像源更改为国内镜像源后再执行安装操作[^4]。 ```bash pip install labelImg -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 完成安装之后,在命令行输入以下指令即可启动该软件: ```bash labelImg ``` #### 使用界面说明 当成功开启程序后,用户会看到一个简洁直观的操作窗口。此窗口主要由菜单栏、工具按钮区以及图片展示区域构成[^2]。 - **打开目录**:点击 “Open Dir” 按钮选择待处理的图片所在文件夹路径。 - **更改保存目录**:通过 “Change Save Dir” 设置生成签文件的具体存储位置,默认情况下会在原图同级目录下新建以 `.xml` 结尾的注文档。 - **开始绘制矩形框**:选中目物体后拖拽鼠左键画出包围它的矩形边框;随后弹窗提示填写类别名称并确认提交。 - **编辑已有的注项**:双击列表里的某条记录进入修改模式或者删除不需要的部分。 #### 导出为 YOLOv5 数据格式 对于深度学习框架如 YOLO 系列模型来说,它们往往接受特定结构的数据作为输入形式之一——即纯文本类型的坐描述而非 XML 文件。因此需要借助额外脚本来实现转换过程。 --- ### 示例代码片段 下面给出一段简单的 Python 脚本用于演示从 Pascal VOC 到 YOLO 格式的转变逻辑: ```python import xml.etree.ElementTree as ET from pathlib import Path def convert(size, box): dw = 1./size[0] dh = 1./size[1] x = (box[0] + box[1])/2.0 y = (box[2] + box[3])/2.0 w = abs(box[1]-box[0]) h = abs(box[3]-box[2]) x = round(x*dw, 6) w = round(w*dw, 6) y = round(y*dh, 6) h = round(h*dh, 6) return (x,y,w,h) def main(): input_dir = './annotations' output_dir = './labels' for file_name in Path(input_dir).glob('*.xml'): tree = ET.parse(str(file_name)) root = tree.getroot() size = root.find('size') width = int(size.find('width').text) height = int(size.find('height').text) with open(Path(output_dir)/f"{file_name.stem}.txt", 'w') as f: for obj in root.iter('object'): difficult = obj.find('difficult').text cls_id = classes.index(obj.find('name').text.strip()) bnd_box = obj.find('bndbox') bbox = ( float(bnd_box.find('xmin').text), float(bnd_box.find('xmax').text), float(bnd_box.find('ymin').text), float(bnd_box.find('ymax').text) ) bb = convert((width,height),bbox) line = "{} {} {} {} {}\n".format(cls_id,*bb) f.write(line) if __name__ == '__main__': classes = ['person', 'car'] # 自定义分类名数组 main() ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值