import random
with open('annotation.txt', 'r') as ff:
dataList = ff.readlines()
tempList = set(range(len(dataList)))
valIndex = set(random.sample(tempList, 760))
trainIndex = tempList - valIndex
valList = [dataList[i].strip() for i in list(valIndex)]
trainList = [dataList[i].strip() for i in list(trainIndex)]
with open('train.txt', 'w') as ff:
ff.write('\n'.join(trainList))
with open('val.txt', 'w') as ff:
ff.write('\n'.join(valList))
train/val切分
x,y,w,h = 140,48,160,75
h_, w_ = 100, 230
n = 16
labelDict = []
imgFiles = os.listdir("./datad/")
for imgPath in imgFiles:
imgPath = ''.join(["./datad/",imgPath])
print(imgPath)
img = cv2.imread(imgPath)
newimg = coordinate(img)
print(str(imgPath))
img_index = str(imgPath).split('_',1)[1].split(".",1)[0]
print(img_index)
#sample = get_sample(img_index,newimg)
#index = imgPath.index('.')
#imgPath_ = ''.join([imgPath[:index], imgPath[-4:]])
print(imgPath)
#imgPath_ = f"{osp.split(imgPath_)[0]}/img_{osp.split(imgPath_)[1]}"
#print(imgPath)
labelfile = imgPath.replace('/datad/', '/label/').replace('.png', '_label.txt')
with open(labelfile, 'r') as ff:
labelList = ff.readlines()
for i in range(n):
a = i%2
b = i//2
print(a,b)
#im = img[y+h_*b:y+h+h_*b, x+w_*a:x+w+w_*a]
#cv2.imwrite(f'{i}.jpg', im)
split_x1 = x+w_*a
spiit_y1 = y+h_*b
split_x2 = x+w+w_*a
split_y2 = y+h+h_*b
label = labelList[i].strip()
labelDict.append(f"{imgPath}\t{split_x1},{spiit_y1},{split_x2},{split_y2}\t{label}")
with open('annotation_sample.txt', 'w') as ff:
ff.write('\n'.join(labelDict))
img和label转为annotation