车道检测数据集制作

前面两篇介绍了labelme安装及的将json文件转化为png,这篇介绍怎么将png转化为Lanenet数据集所需~

主要是将labelme生成的json批量转化的文件转化为训练数据,源文件中每个文件夹中所包含数据如图:
在这里插入图片描述
转化为目标文件夹目录:
在这里插入图片描述
代码参考了别人转化后图像不对,自己修改了下,如下:

import sys
import copy
import os
import cv2
import numpy as np
from skimage import measure,color

#将label.png转化为二值图,instance图,未采用
def skimageFilter(gray):
    binary_warped = copy.deepcopy(gray)
    gray = (np.dstack((gray, gray, gray)) * 255).astype('uint8')
    labels = measure.label(gray[:, :, 0], connectivity=1)
    dst = color.label2rgb(labels, bg_label=0, bg_color=(0, 0, 0))
    gray = cv2.cvtColor(np.uint8(dst * 255), cv2.COLOR_RGB2GRAY)
    return binary_warped, gray

#灰度图转化为二值图像
def png_to_binary(gray):
    # b,g,r = cv2.split(gray)
    # r[np.where(r != 0)] = 255

    ret,thresh = cv2.threshold(gray,1,255,cv2.THRESH_BINARY)
    return thresh

#将训练图像转存至目标路径中
def moveImageTodir(path,targetPath,name):
    if os.path.isdir(path):
        image_name = (targetPath + "/image/" + str(name) + ".png")
        binary_name = (targetPath + "/gt_image_binary/" + str(name) + ".png")
        instance_name = (targetPath + "/gt_image_instance/" + str(name) + ".png")

        train_rows = image_name + "" + binary_name + "" +instance_name +"\n"

        origin_img = cv2.imread(path + "/img.png")
        origin_img = cv2.resize(origin_img,(1280,720))
        cv2.imwrite(image_name, origin_img)

        img = cv2.imread(path+"/label.png")
        img = cv2.resize(img, (1280,720))
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        binary_warped = png_to_binary(gray)
        # binary_warped, instance = skimageFilter(gray)

        cv2.imwrite(binary_name, binary_warped)
        cv2.imwrite(instance_name, gray)

        print("success create data name is:",train_rows)
        return train_rows
    return None


if __name__ == "__main__":
    print('11')
    path = 'C:/testjsontodata/'
    destPath = 'C:/MyProect/path/trainData'
    root = os.getcwd()
    print(root)
    count = 1
    with open("./train.txt", 'w+') as file:
        for images_dir in os.listdir(path):
            dir_name = os.path.join(path, images_dir)
            train_rows = moveImageTodir(dir_name,destPath,images_dir.split('_')[0])
            file.write(train_rows)
            count += 1
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值