用Labelme实现图像分割

labelme是MIT出品的用来手动实现图片分割的傻瓜式软件。他的安装很简单。

通过pip的方式可以直接进行安装。

pip install labelme

但是可能有前置库,要安装PyQt。

pip install PyQt5

也是通过pip的方式进行安装。

安装成功后,在cmd界面直接输入labelme即可弹出窗口进行标注。

标注之后,该软件会保存一个json文件到相应文件夹下。

类似这样。

然后在命令行中输入,

其格式为:labelme_json_to_dataset + json文件路径

运行后会生成一个文件夹,文件夹中包含四个部分。

 

我们对视频标注的话,有很多图片。因此我写了一个批量处理json文件的脚本。

#!/bin/bash
path="D:\\desktop\\data\\train-video\\v_ApplyEyeMakeup_g05_c01\\"
for i in $(seq 1 179)
do
	if [ $i -le 99 ] && [ $i -ge 10 ]
	then labelme_json_to_dataset ${path}0${i}.json
	elif [ $i -lt 10 ] 
	then labelme_json_to_dataset ${path}00${i}.json
	else labelme_json_to_dataset ${path}${i}.json
	fi
done

批量处理json文件生成标注文件之后,我们其实要的只是分割图。

通过一个python文件处理。此部分代码转自:https://www.jianshu.com/p/62082fd8a14c

import cv2 as cv
import random
import glob
import os
from PIL import Image
import shutil
# import pdb
def get_samples(foldername,savePath):
    print('savePath:',savePath)
    if os.path.exists(savePath) is False:
        os.makedirs(savePath)
    filenames = os.listdir(foldername)

    for filename in filenames:
        full_path = os.path.join(foldername, filename)
        new_name = filename[:-5]+'.png'
        label_png = os.listdir(full_path)[2]
        #os.rename(os.path.join(filename, label_png),os.path.join(filename, name))
        shutil.copy(os.path.join(full_path, label_png), os.path.join(savePath, label_png))
        os.rename(os.path.join(savePath, label_png),os.path.join(savePath, new_name))
readPath = 'D:\\desktop\\data\\train-video\\v_ApplyEyeMakeup_g11_c02\\segf'
savePath = 'D:\\desktop\\data\\train-video\\v_ApplyEyeMakeup_g11_c02\\seg'
get_samples(readPath, savePath)

该python文件的作用是把所有png文件重命名,按顺序存放到文件夹中。

这样我们的分割任务就完成啦。

耗时一天半。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值