如何使用labelme标注语义分割
时间: 2025-03-24 22:01:00 浏览: 49
### 使用 Labelme 进行语义分割标注
#### 安装与配置
为了使用 `Labelme` 工具进行语义分割标注,首先需要将其安装到 Python 环境中。可以通过 Anaconda 或者其他虚拟环境管理器来完成这一操作。具体命令如下:
```bash
pip install labelme
```
此命令会自动下载并安装最新版本的 `Labelme` 库及其依赖项[^5]。
#### 启动工具
安装完成后,在终端或者命令提示符下运行以下指令启动图形界面程序:
```bash
labelme
```
这一步骤将会打开一个基于 Qt 的 GUI 界面用于交互式标记图片数据集[^2]。
#### 主要功能介绍
在实际操作过程中,用户可以利用鼠标拖拽框选目标区域,并通过右侧属性栏定义类别名称以及设置颜色样式等参数。此外还有多种辅助选项可供选择调整画布缩放比例旋转角度等功能以便更精确地标记复杂形状对象[^1]。
对于快捷键支持方面也做了详细介绍说明表单形式呈现便于记忆掌握提高工作效率[^3]。
#### 输出格式注意事项
当保存已编辑好的项目时,默认生成 JSON 文件作为存储载体记录所有必要的元信息比如像素坐标位置关系分类标签描述等等字段内容。值得注意的是其中关于图像路径部分仅允许单纯文件名而不能包含任何额外目录结构指示符(如 ../ \\ )以免引起后续处理阶段出现问题影响正常使用效果[^4]。
以下是创建简单脚本读取这些JSON文件并将它们转换成PNG掩码的一个例子:
```python
import json
from PIL import Image, ImageDraw
def shape_to_mask(size, points):
img = Image.new('L', size, 0)
ImageDraw.Draw(img).polygon(points, outline=1, fill=1)
mask = np.array(img, dtype=bool)
return mask
with open("example.json") as f:
data = json.load(f)
img_size = (data['imageWidth'], data['imageHeight'])
mask_img = Image.new('RGB', img_size )
for shape in data["shapes"]:
polygon = [(point[0], point[1]) for point in shape["points"]]
color = tuple([int(c * 255) for c in shape.get("fill_color", [0, 0, 0])])
draw = ImageDraw.Draw(mask_img )
draw.polygon(polygon ,outline=color,fill=color)
mask_img.save("output.png")
```
阅读全文
相关推荐

















