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()