代码小白,第一次认真看大段大段的代码,基础知识严重欠缺,如有错误望指正。 进入正题: 测试命令示例: $./darknet detector test cfg/voc.data cfg/tiny-yolo-voc.cfg results/tiny-yolo-voc_6000.weights data/images.jpg 1 一、main函数 目前最新版本的darknet中,darknet.c和detector.c都在examples文件夹中。 首先,从主函数开始解析命令行参数,然后根据不同的命令行参数进入不同的调用方法。(本文不考虑GPU部分代码) //darknet.c int main(int argc, char **argv) { //test_resize("data/bad.jpg"); //test_box(); //test_convolutional_layer(); //如果没有任何命令行参数,则打印一句提示信息:Usage: [应用程序名称] <function>,即告诉你要指定一个命令行参数。 if(argc < 2){ fprintf(stderr, "usage: %s <function>\n", argv[0]); return 0; } if (0 == strcmp(argv[1], "average")){ average(argc, argv); } else if (0 == strcmp(argv[1], "detector")){ run_detector(argc, argv); }//第一个参数是detector,跳转到run_detector函数 return 0; } 附:1、fprintf函数 作用:格式化输出到一个流/文件中; 函数原型: int fprintf( FILE *stream, const char *format, [ argument ]...) 1 fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(