通过tf.app.flags.DEFINE_string(arg1,arg2,arg3)
,可以对命令行参数进行定义,第一个参数表示参数名,第二个参数是默认值,当我们通过命令行执行py文件没有传入对应参数的时候就会获取默认值,第三个是参数说明
之后通过 tf.app.flags.FLAGS.xxx
来直接读取参数值
import tensorflow as tf
flags = tf.app.flags
# 定义参数
flags.DEFINE_string("input_dir", "./docs/test_videos", "输入视频所在文件夹")
flags.DEFINE_string("output_dir", "./output", "输出检测结果视频文件夹")
flags.DEFINE_string("video_name", "test.avi", "视频名称")
flags.DEFINE_string("tracker_type", "kcf", "追踪算法")
FLAGS = flags.FLAGS
def main(args):
# 测试视频所在的文件夹
input_dir = FLAGS.input_dir
# 输出检测结果的文件夹
output_dir = FLAGS.output_dir
# 输入视频名称
video_name = FLAGS.video_name
# 跟踪器类别
tracker_type = FLAGS.tracker_type
print(input_dir)
print(output_dir)
print(video_name)
print(tracker_type)
if __name__ == "__main__":
tf.app.run()
文件名:存在video_detective.py
执行python video_detective.py --video_name l1.avi
输出:
./docs/test_videos
./output
l1.avi
kcf