华为的新车道线数据集Curvelanes,将标签图形化显示

话不多说,上代码:

import os,cv2,json
import numpy as np

ORIGIN_IMAGE_SIZE = (2560,1440)
IMAGE_PATH = 'D:/BaiduNetdiskDownload/Curvelanes/train/images'
LABEL_PATH = 'D:/BaiduNetdiskDownload/Curvelanes/train/labels'

def my_generator():
    #获得label文件夹下json文件名
    label_file_name_list =  os.listdir(LABEL_PATH)
    #获得image文件夹下png文件名
    image_file_name_list = os.listdir(IMAGE_PATH)
    for image_file_name,label_file_name in zip(image_file_name_list,label_file_name_list):
        #加载图片
        raw_img = cv2.imread(IMAGE_PATH+'/'+image_file_name)
        #加载标签
        with open(LABEL_PATH+'/'+label_file_name,'r') as f:
            point_dict_list_list = json.load(f)['Lines']
            for point_dict_list in point_dict_list_list:
                random_color = np.random.randint(0,255,3,int).tolist()
                last_pos = None
                for point_dict in point_dict_list:
                    pos = (int(eval(point_dict['x'])),int(eval(point_dict['y'])))
                    cv2.circle(raw_img,pos,5,random_color,-1)
                    if last_pos != None:cv2.line(raw_img,last_pos,pos,random_color,5)
                    last_pos = pos
                            
        yield cv2.resize(raw_img,(ORIGIN_IMAGE_SIZE[0]//2,ORIGIN_IMAGE_SIZE[1]//2))

if __name__ == "__main__":
    for iterator in my_generator():
        cv2.imshow('frame',iterator)
        cv2.waitKey(0)

用的话直接改IMAGE_PATH和LABEL_PATH就行,标签中的标注点我是用直线连的,你也可以先插值再用自然样条连,但是直线更能体现出标记点数量的合理程度(比如有的曲线只标两个点,用直线连接很明显能看出与原车道不符合)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值