diff --git a/AlgorithmModule/include/AI_Edge_Algin.h b/AlgorithmModule/include/AI_Edge_Algin.h index d21b22b..23a8f68 100644 --- a/AlgorithmModule/include/AI_Edge_Algin.h +++ b/AlgorithmModule/include/AI_Edge_Algin.h @@ -103,6 +103,7 @@ public: int ncamId; // 相机ID BaseCheckFunction *pBaseCheckFunction; std::string strChannel; // 通道 + std::string strProductID; // 产品ID(定位存图文件名首位) int nthresholdvalue; // 背景阈值 int nAIErodesize; // 边缘腐蚀强度 bool bSaveResultImg; // 保存结果图片 @@ -118,6 +119,7 @@ public: void Init() { pBaseCheckFunction = NULL; + strProductID = ""; ncamId = 0; nthresholdvalue = 1; nAIErodesize = 7; diff --git a/AlgorithmModule/src/AI_Edge_Algin.cpp b/AlgorithmModule/src/AI_Edge_Algin.cpp index 03e71a8..7812408 100644 --- a/AlgorithmModule/src/AI_Edge_Algin.cpp +++ b/AlgorithmModule/src/AI_Edge_Algin.cpp @@ -185,8 +185,8 @@ AI_Edge_Algin::AI_Edge_Algin(std::shared_ptr &log_ref) m_bModelSucc = false; m_bModel_Mark_Succ = false; m_bshowimg = false; - m_strRootPath_Big = "/home/aidlux/BOE/Algin/"; - m_strRootPath_Mark = "/home/aidlux/BOE/MarkLine/"; + m_strRootPath_Big = "/home/aidlux/BOE/Algin/BM/"; + m_strRootPath_Mark = "/home/aidlux/BOE/MarkLine/BM/"; creatsavedir(); std::string m_strSavePath; @@ -414,19 +414,13 @@ int AI_Edge_Algin::Get_Edge(int AIModel_type, const cv::Mat &img, DetConfig *pDe if (pDetConfig->pBaseCheckFunction->saveImg.bSaveAlginImg) { creatsavedir(); - static int sdk = 0; - std::string str = m_strSavePath_Big + std::to_string(sdk) + "_" + pDetConfig->strChannel + "_Img.png"; + // 定位存图文件名:{产品ID}_{通道}_{模型序号(0大/1小/2Tag)}_Img(_mask).png + std::string str = m_strSavePath_Big + pDetConfig->strProductID + "_" + pDetConfig->strChannel + "_" + std::to_string(AIModel_type) + "_Img.png"; int sr = m_pImageStorage->addImage(str, detImg); if (sr == 0) { - str = m_strSavePath_Big + std::to_string(sdk) + "_" + pDetConfig->strChannel + "_Img_mask.png"; + str = m_strSavePath_Big + pDetConfig->strProductID + "_" + pDetConfig->strChannel + "_" + std::to_string(AIModel_type) + "_Img_mask.png"; int sr = m_pImageStorage->addImage(str, mask, true); - sdk++; - if (sdk > 99999) - { - sdk = 0; - /* code */ - } } } diff --git a/AlgorithmModule/src/ImgCheckAnalysisy.cpp b/AlgorithmModule/src/ImgCheckAnalysisy.cpp index d54f86b..5b9a729 100644 --- a/AlgorithmModule/src/ImgCheckAnalysisy.cpp +++ b/AlgorithmModule/src/ImgCheckAnalysisy.cpp @@ -2045,6 +2045,16 @@ int ImgCheckAnalysisy::AI_Detect_Thread(const cv::Mat &img, cv::Mat &ResultImg) m_pdetlog->AddCheckstr(PrintLevel_0, DET_LOG_LEVEL_3, strBaseLog, "AI_Detect End"); + if (m_pbaseCheckFunction->saveImg.bSaveAIDetImg && !ResultImg.empty()) + { + std::string strSaveDir = "/home/aidlux/BOE/AI_Detect/KK/" + DetImgInfo_shareP->strImgProductID + "/"; + CheckUtil::CreateDir(strSaveDir); + std::string strSavePath_in = strSaveDir + m_strCurDetChannel + "_in.png"; + std::string strSavePath_out = strSaveDir + m_strCurDetChannel + "_out.png"; + cv::imwrite(strSavePath_in, inputImg); + cv::imwrite(strSavePath_out, ResultImg); + } + // 临时存图 if (DetImgInfo_shareP->bsaveProcessImg) { @@ -2537,6 +2547,7 @@ int ImgCheckAnalysisy::AI_Edge(const cv::Mat &img, cv::RotatedRect &outerRoi, cv config.strChannel = DetImgInfo_shareP->strChannel; config.pBaseCheckFunction = m_pbaseCheckFunction; config.bDetTag = m_pFuntion->function.f_supportDet.bDetTag; // 标签检测开关:关闭时不跑 Tag_Loc + config.strProductID = DetImgInfo_shareP->strImgProductID; // 定位存图文件名首位使用产品ID /* 定位获取三个roi */ int re = m_pAI_Edge_Algin.Detect(img, &config, m_pEdge_Align_Result); diff --git a/ConfigModule/include/CheckConfigDefine.h b/ConfigModule/include/CheckConfigDefine.h index 812be71..5d6c1b7 100644 --- a/ConfigModule/include/CheckConfigDefine.h +++ b/ConfigModule/include/CheckConfigDefine.h @@ -1148,9 +1148,9 @@ struct Base_Function_SaveImg { bool bOpen; // 是否开启 - bool bSaveMarkImg; // mark 存图 + bool bSaveAIDetImg; // mark 存图 bool bSaveClsImg; // 分类 存图 - bool bSaveAlginImg; // 分类 存图 + bool bSaveAlginImg; // 定位 存图 Base_Function_SaveImg() { @@ -1159,7 +1159,7 @@ struct Base_Function_SaveImg void Init() { bOpen = false; - bSaveMarkImg = false; + bSaveAIDetImg = false; bSaveClsImg = false; bSaveAlginImg = false; } @@ -1168,20 +1168,20 @@ struct Base_Function_SaveImg { this->bOpen = tem.bOpen; - this->bSaveMarkImg = tem.bSaveMarkImg; + this->bSaveAIDetImg = tem.bSaveAIDetImg; this->bSaveClsImg = tem.bSaveClsImg; this->bSaveAlginImg = tem.bSaveAlginImg; } void print(std::string str) { - printf("%s>>bOpen %d bSaveMarkImg %d bSaveClsImg %d bSaveAlginImg %d \n", str.c_str(), - bOpen, bSaveMarkImg, bSaveClsImg, bSaveAlginImg); + printf("%s>>bOpen %d bSaveAIDetImg %d bSaveClsImg %d bSaveAlginImg %d \n", str.c_str(), + bOpen, bSaveAIDetImg, bSaveClsImg, bSaveAlginImg); } std::string GetInfo(std::string str) { char buffer[256]; - sprintf(buffer, "%s>>bOpen %d bSaveMarkImg %d bSaveClsImg %d bSaveAlginImg %d \n", str.c_str(), - bOpen, bSaveMarkImg, bSaveClsImg, bSaveAlginImg); + sprintf(buffer, "%s>>bOpen %d bSaveAIDetImg %d bSaveClsImg %d bSaveAlginImg %d \n", str.c_str(), + bOpen, bSaveAIDetImg, bSaveClsImg, bSaveAlginImg); std::string str123 = buffer; return str123; } diff --git a/ConfigModule/src/JsonConfig.cpp b/ConfigModule/src/JsonConfig.cpp index d068d90..bf49b44 100644 --- a/ConfigModule/src/JsonConfig.cpp +++ b/ConfigModule/src/JsonConfig.cpp @@ -982,10 +982,6 @@ int BaseFuntonConfigJson::GetFunction(Json::Value value) if (_config.saveImg.bOpen) { - if (value_f["form"]["SaveImg_Config"]["Mark_Save"]) - { - _config.saveImg.bSaveMarkImg = value_f["form"]["SaveImg_Config"]["Mark_Save"].asBool(); - } if (value_f["form"]["SaveImg_Config"]["Cls_Save"]) { _config.saveImg.bSaveClsImg = value_f["form"]["SaveImg_Config"]["Cls_Save"].asBool(); @@ -994,6 +990,10 @@ int BaseFuntonConfigJson::GetFunction(Json::Value value) { _config.saveImg.bSaveAlginImg = value_f["form"]["SaveImg_Config"]["Align_Big_Save"].asBool(); } + if (value_f["form"]["SaveImg_Config"]["AI_Det_Save"]) + { + _config.saveImg.bSaveAIDetImg = value_f["form"]["SaveImg_Config"]["AI_Det_Save"].asBool(); + } } else {