import os
import json
import numpy as np
def gen_config(args):
if args.seq != '':
# generate config from a sequence name
seq_home = 'datasets/OTB'
result_home = 'results'
seq_name = args.seq#输入时,获取的视频名称,实验中,获取的名称为DragonBaby
img_dir = os.path.join(seq_home, seq_name, 'img')#图片路径拼接
gt_path = os.path.join(seq_home, seq_name, 'groundtruth_rect.txt')#真值路径拼接
img_list = os.listdir(img_dir)#获取图片路径下的所有文件,放到list中
img_list.sort()#将图片名字进行排序,比如按照序列号排序,否则会混乱,而不是按照原先的顺序。
img_list = [os.path.join(img_dir, x) for x in img_list]#!!!这个句子好高级,本来img_list中存的是图片名称,001,002
#经过这个语句后,img_list中存的是所有图片的路径,而不只是个名字。
with open(gt_path) as f:#读取真值文本文件
#https://blog.youkuaiyun.com/qq_20135597/article/details/89193961 介绍np.loadtxt()函数,用来加载txt文件,每一行的格式必须相同
gt = np.loadtxt((x.replace('\t',',') for x in f), delimiter=',')#delimiter是一个分隔符。该条语句将txt信息读出来,并转变成numpy.array
init_bbox = gt[0]#获取第一帧中边界框的信息
result_dir = os.path.join(result_home, seq_name)#结果目录
if not os.path.exists(result_dir):#如果不存在,就建立一个
os.makedirs(result_dir)
savefig_dir = os.path.join(result_dir, 'figs')#保存生成的视频
result_path = os.path.join(result_dir, 'result.json')#保存结果集
elif args.json != '':
# load config from a json file
param = json.load(open(args.json, 'r'))
seq_name = param['seq_name']
img_list = param['img_list']
init_bbox = param['init_bbox']
savefig_dir = param['savefig_dir']
result_path = param['result_path']
gt = None###不知道为啥为空。
if args.savefig:
if not os.path.exists(savefig_dir):
os.makedirs(savefig_dir)
else:
savefig_dir = ''
return img_list, init_bbox, gt, savefig_dir, args.display, result_path
#获取图片序列号,第一针中边界框,所有边界框,图像保存位置,是否展示,结果路径。