#include #include #include #include "deal.h" #include #include #include #include void handler(int sig) { printf("Get handler sig"); string strcmd = "ps -ef | grep test_JBL_Check| awk '{print $2}' | xargs kill -9 "; const char *cmd = strcmd.c_str(); printf("delete test_JBL_Check success"); if (-1 == system(cmd)) { std::cout << "error" << std::endl; } // delete UnderCarriageCoreLogic::GetInstance(); exit(0); } int _sysmkdir(const std::string &dir) { int ret = mkdir(dir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); if (ret && errno == EEXIST) { // printf("dir[%s] already exist.\n", dir.c_str()); } else if (ret) { printf("create dir[%s] error: %d %s\n", dir.c_str(), ret, strerror(errno)); return -1; } else { printf("create dir[%s] success.\n", dir.c_str()); } return 0; } std::string __getParentDir(const std::string &dir) { std::string pdir = dir; if (pdir.length() < 1 || (pdir[0] != '/')) { return ""; } while (pdir.length() > 1 && (pdir[pdir.length() - 1] == '/')) pdir = pdir.substr(0, pdir.length() - 1); pdir = pdir.substr(0, pdir.find_last_of('/')); return pdir; } int _sysmkdirs(const std::string &dir) { int ret = 0; if (dir.empty()) return -1; std::string pdir; if ((ret = _sysmkdir(dir)) == -1) { pdir = __getParentDir(dir); if ((ret = _sysmkdirs(pdir)) == 0) { ret = _sysmkdirs(dir); } } return ret; } int main(int argc, char *argv[]) { deal test; if (argc > 1 && string(argv[1]) == "-h") { cout << "******************************************************" << endl; cout << "*** 1、./test_JBL_Check: 默认处理一套图 图片文件夹位于 ../data/img/t1,结果位于/home/aidlux/BOE/testresult" << endl; cout << "*** 2、./test_JBL_Check -s: 1 的基础上增加 过程存图,包括edge 和字符检测的中间结果存图,图片位于 当前文件夹。" << endl; cout << "*** 3、./test_JBL_Check -fjc filepath: 处理精测套图大图 结果位于/home/aidlux/BOE/ResultImg" << endl; cout << "*** 4、./test_JBL_Check -feai filepath num: 批量测试边缘检测算法,num 至多处理张数,结果:/home/aidlux/BOE/Edge" << endl; cout << "*** 5、./test_JBL_Check -falign filepath num : 批量测试定位算法,num 至多处理张数,结果:/home/aidlux/BOE/Align" << endl; cout << "*** 6、./test_JBL_Check -rjson filepath: 单张复测,filepath xx/xx/3A3K380001B1DK_20240408_152157_Main_0_2_L255" << endl; cout << "*** 6、./test_JBL_Check -rjsonall filepath: 一套图复测,filepath xx/xx/" << endl; cout << "******************************************************" << endl; return 0; } printf("argc = %d\n", argc); for (int i = 0; i < argc; i++) { printf("argv[%d]=%s\n", i, argv[i]); } if (argc > 1 && string(argv[1]) != "-h") { for (int i = 1; i < argc; i++) { if (string(argv[i]) == "-rs") { test.runConfig.run_Type = Process_Run_SaveImg; } else if (string(argv[i]) == "-rd") { test.runConfig.run_Type = Process_Run_Detect; } else if (string(argv[i]) == "-rjson") { if (i + 1 >= argc) { printf("error Not Path \n"); return -1; } test.runConfig.run_Type = Process_Run_ReJson; test.runConfig.filePath = string(argv[i + 1]); } else if (string(argv[i]) == "-f" && i + 1 < argc) { test.runConfig.det_Type = RUNTYPE_RUN_File; test.runConfig.filePath = string(argv[i + 1]); } else if (string(argv[i]) == "-fe" && i + 1 < argc) { test.runConfig.det_Type = RUNTYPE_RUN_EDGE_TEST; test.runConfig.filePath = string(argv[i + 1]); } else if (string(argv[i]) == "-feai" && i + 1 < argc) { test.runConfig.det_Type = RUNTYPE_RUN_EDGE_TEST_AI; test.runConfig.filePath = string(argv[i + 1]); } else if (string(argv[i]) == "-m") { test.runConfig.det_Type = RUNTYPE_RUN_Merge_Img; } if (string(argv[i]) == "-s") { test.runConfig.bSaveProcessImg = true; } if (string(argv[i]) == "-ud") { test.runConfig.bdecode = false; } if (string(argv[i]) == "-fud" && i + 1 < argc) { test.runConfig.det_Type = RUNTYPE_RUN_File; test.runConfig.filePath = string(argv[i + 1]); test.runConfig.bdecode = false; } } } test.runConfig.print("config"); // getchar(); signal(SIGINT, handler); test.start(); while (true) { usleep(10 * 1000); } return 0; }