c++ 解析txt格式的配置文件

背景:
使用配置文件方便修改参数,而不用代码重新编译。
YOlov7 推理时可以使用用不同的模型,来到达到推理几路(BATCH_SIZE)视频,以及输入图片的大小的目的。

配置文件 yolov7.cfg内容,注意等号右边不要加引号

onnx_file=../configs/weights/yolov7_b4_320x320.onnx
engine_file=../configs/weights/yolov7_b4_320x320.trt
labels_file=../configs/labels/ls.names
BATCH_SIZE=4
nms_threshold=0.5
IMAGE_WIDTH=320
IMAGE_HEIGHT=320

主要函数 GetConfigStringValue

std::string config_file = "../configs/yolov7.cfg";

static void GetConfigStringValue(const char* keyName, char* keyvalue)
{
    char buff[150] = { 0 };
    FILE* file = fopen(config_file.c_str(), "r");
    while (fgets(buff, 100, file))
    {
        char* tempKeyName = strtok(buff, "=");
        if (!tempKeyName) continue;
        char* tempkeyvalue = strtok(NULL, "=");

        if (!strcmp(tempKeyName, keyName))
            strcpy(keyvalue, tempkeyvalue);
    }
    fclose(file);
}

使用过程:

		char onnx_file[200] = { 0 };
        char engine_file[200] = { 0 };
        char labels_file[200] = { 0 };
        char nms_threshold[100] = { 0 };
        char BATCH_SIZE[100] = { 0 };
        char IMAGE_WIDTH[100] = { 0 };
        char IMAGE_HEIGHT[100] = { 0 };
        GetConfigStringValue("onnx_file",onnx_file);
        GetConfigStringValue("engine_file",engine_file);
        GetConfigStringValue("labels_file",labels_file);
        GetConfigStringValue("nms_threshold",nms_threshold);
        GetConfigStringValue("BATCH_SIZE",BATCH_SIZE);
        GetConfigStringValue("IMAGE_WIDTH",IMAGE_WIDTH);
        GetConfigStringValue("IMAGE_HEIGHT",IMAGE_HEIGHT);
        onnx_file[strlen(onnx_file) - 1] = 0;
        engine_file[strlen(engine_file) - 1] = 0;
        labels_file[strlen(labels_file) - 1] = 0;
        CONfig config_v7; //结构体
       
        config_v7.nms_threshold = (float)atof(nms_threshold);
        config_v7.onnx_file = onnx_file;
        config_v7.engine_file = engine_file;
        config_v7.labels_file = labels_file;
        config_v7.BATCH_SIZE = atoi(BATCH_SIZE);
      
      	config_v7.IMAGE_WIDTH   = atoi(IMAGE_WIDTH);
        config_v7.IMAGE_HEIGHT  = atoi(IMAGE_HEIGHT);
       

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...