CULane数据集可视化

该代码片段是针对CULane数据集进行车道线检测的处理,它读取图片及其对应的车道线标注文件,使用OpenCV库在图片上标出车道线位置。如果图片没有车道线,则仅显示图片。代码中包含了对图像的预处理步骤,如读取、解析标注文件并用圆点标出车道线位置,还支持按q键退出显示。
摘要由CSDN通过智能技术生成

CULane数据集处理,可用于后续车道线检测_yyc_ssasd的博客-CSDN博客

参考了上面的博客内容,不过上面提供的代码会将没有车道线的图片略过。再次基础上增加了只对图片的显示。也算是自己对代码留个档。

import os
import cv2
import numpy as np
from time import sleep

basedir = r'F:\data\CULane'


def get_laneData(filepath):
    labelpath = filepath.replace('jpg', 'lines.txt')
    img = None
    imgLable = None
    if os.path.exists(filepath) and os.path.exists(labelpath) and os.path.getsize(labelpath):
        # print("图片地址存在,label地址存在")
        img = cv2.imread(filepath)
        labelPos = []
        for line in open(labelpath):
            labelPos.append(line.strip('\n'))

        # imgLable=np.zeros(img.shape)
        imgLable = img.copy()
        # 存储所有到路线的位置信息
        # print(labelPos)
        for lpos in labelPos:
            # 位置信息通过空格隔开
            labelC = lpos.split(' ')[:-1]
            ylist = labelC[::2]
            xlist = labelC[1::2]
            # print(len(xlist))
            # print(len(ylist))
            for idx, ivalue in enumerate(xlist):
                cv2.circle(imgLable, (int(float(ylist[idx])), int(float(xlist[idx]))), 2, (0, 0, 255), 2)
    # xiongxiong 修改,对没有车道线的图片仅读取图片    2023.4.2
    elif os.path.exists(filepath) and os.path.exists(labelpath) :
        img = cv2.imread(filepath)
        imgLable = None
    else:
        # print("图片地址不存在或者Lable地址不存在")
        print("no line")
    return img, imgLable


text_path = r'list\test.txt'
# with open(os.path.join(basedir,text_path),'r') as fr:
for line in open(os.path.join(basedir, text_path)):
    data = line
    # print(os.path.abspath(os.path.join(basedir, data[1:].strip('\n'))))
    img, imglabel = get_laneData(os.path.join(basedir, data[1:].strip('\n')))
    # print(imglabel)
    if img.any() and imglabel is not None:
        imglabel = cv2.resize(imglabel, (1024, 512))
        cv2.imshow('dsh', imglabel)
        sleep(0.1)
    elif img.any() is not None:
        cv2.imshow('dsh', img)
        sleep(0.1)
    if cv2.waitKey(1) & 0xFF == ord('q'):  # 按q退出
        cv2.waitKey(0)

cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值