labelme标注转为MVTecAD格式

def labelme2mvtec(path):
    """
    :param path: 路径
    :return: 无
    将labelme标注的图转为MVTecAD格式
    """
    files = os.listdir(path)
    savepath = r'E:\Projects\006_datasets\insulant\ground_truth\defect'
    for i, file in enumerate(files):
        print("第 %d 共 %d" % (i + 1, len(files)))
        filename = file.split('.')[0]
        filepath = os.path.join(path,file)
        if filepath.endswith('.json'):
            labelme_json = json.load(open(filepath, encoding='utf-8'))
            H,W = labelme_json['imageHeight'],labelme_json['imageWidth'] # 图像高、宽
            mask = np.zeros((H, W, 1), dtype=np.uint8)

            for i in range(len(labelme_json['shapes'])):
                points = labelme_json['shapes'][i]['points']
                points = np.array(points)
                points = points.reshape(-1, 1, 2)
                points = points.astype(np.int32)

                cv2.fillConvexPoly(mask, points, (255,))
            # 有中文路径必须这样写
            cv2.imencode('.png', mask)[1].tofile(os.path.join(savepath, '%s_mask.png' % (filename)))

if __name__ == '__main__':
    path = r'E:\Projects\006_datasets\insulant\ng'
    labelme2mvtec(path)

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值