From c6663d29d9eaf4fd3041d45115f4c32efacf4aaa Mon Sep 17 00:00:00 2001 From: liusiyang Date: Fri, 24 Apr 2026 14:16:06 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ConfigModule/include/CheckConfigDefine.h | 11 ++++++++++- example/LoadImage.cpp | 17 ++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/ConfigModule/include/CheckConfigDefine.h b/ConfigModule/include/CheckConfigDefine.h index 9cd5af7..e37f825 100644 --- a/ConfigModule/include/CheckConfigDefine.h +++ b/ConfigModule/include/CheckConfigDefine.h @@ -174,6 +174,10 @@ enum IMG_CHANNEL_ IMG_CHANNEL_WTB, IMG_CHANNEL_TBW, IMG_CHANNEL_L0, + IMG_CHANNEL_RGBHGRAY, + IMG_CHANNEL_SCANR, + IMG_CHANNEL_SCANG, + IMG_CHANNEL_SCANB, IMG_CHANNEL_Count, }; // 缺陷项对应在参数中的名称 @@ -197,7 +201,12 @@ static const std::string IMG_CHANNEL_NAME[] = "BTW", "WTB", "TBW", - "L0"}; + "L0", + "RGB-HGRAY", + "SCANR", + "SCANG", + "SCANB" + }; // 分析类型 enum ANALYSIS_TYPE_ { diff --git a/example/LoadImage.cpp b/example/LoadImage.cpp index 60058ea..b744c4d 100644 --- a/example/LoadImage.cpp +++ b/example/LoadImage.cpp @@ -9,7 +9,7 @@ namespace { constexpr const char *LEFT_DIR_NAME = "left"; constexpr const char *RIGHT_DIR_NAME = "right"; - constexpr const char *PRODUCT_DIR_PREFIX = "__DB__"; + constexpr const char *PRODUCT_DIR_PREFIX = ""; } // 静态成员定义 @@ -134,6 +134,7 @@ std::string LoadImage::GetInfo(const std::string &str) std::string LoadImage::extractProductId(const std::string &dir_name) { // 检查是否以 "__DB__" 开头 + if(PRODUCT_DIR_PREFIX == "") return dir_name; if (dir_name.find(PRODUCT_DIR_PREFIX) == 0) { // 跳过前缀,返回剩余部分作为产品 ID @@ -158,18 +159,20 @@ std::string LoadImage::extractChannelName(const std::string &filename) name = name.substr(0, ext_pos); } - // Step 2: 优先尝试用 '^' 分隔符提取(如 "img_01^CH1" -> "CH1") - size_t sep_pos = name.rfind('^'); + // Step 2: 优先尝试用 '^' 分隔符提取(如 "img_01^CH1^Org" -> "CH1") + size_t last_sep_pos = name.rfind('^'); + size_t sep_pos = name.rfind('^', last_sep_pos - 1); if (sep_pos != std::string::npos && sep_pos < name.length() - 1) { - return name.substr(sep_pos + 1); + return name.substr(sep_pos + 1, last_sep_pos - sep_pos - 1); } - // Step 3: 其次尝试用 '_' 分隔符提取(如 "img_01_CH1" -> "CH1") - size_t under_pos = name.rfind('_'); + // Step 3: 其次尝试用 '_' 分隔符提取(如 "img_01_CH1_Org" -> "CH1") + size_t last_under_pos = name.rfind('_'); + size_t under_pos = name.rfind('_', last_under_pos - 1); if (under_pos != std::string::npos && under_pos < name.length() - 1) { - return name.substr(under_pos + 1); + return name.substr(under_pos + 1, last_under_pos - under_pos - 1); } // Step 4: 如果没有分隔符,返回整个文件名(不含扩展名)