From a979c07179d65f084221ab50cbaca0213053a2f2 Mon Sep 17 00:00:00 2001 From: liusiyang Date: Mon, 7 Sep 2026 18:35:56 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E6=B7=BB=E5=8A=A0AI=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E5=AD=98=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AlgorithmModule/src/ImgCheckAnalysisy.cpp | 13 ++++++++++++- ConfigModule/include/CheckConfigDefine.h | 11 +++++++---- ConfigModule/src/JsonConfig.cpp | 4 ++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/AlgorithmModule/src/ImgCheckAnalysisy.cpp b/AlgorithmModule/src/ImgCheckAnalysisy.cpp index e57ac0f..f1d5545 100644 --- a/AlgorithmModule/src/ImgCheckAnalysisy.cpp +++ b/AlgorithmModule/src/ImgCheckAnalysisy.cpp @@ -1802,6 +1802,17 @@ int ImgCheckAnalysisy::AI_Detect_Thread(const cv::Mat &img, cv::Mat &ResultImg) temAIresult->AI_inImg = result->input; temAIresult->AI_mask = outimg; m_pImageAllResult->AI_Qx_MaskList.push_back(temAIresult); + // AI检测残点图存图 + if (m_pbaseCheckFunction->saveImg.bSaveAIDetImg) + { + std::string roi_ext = "[" + std::to_string(result->roi.x) + "," + std::to_string(result->roi.y) + "]"; + std::string strSaveDir = "/home/aidlux/BOE/FOG/AI_Detect/" + DetImgInfo_shareP->strImgProductID + "/"; + CheckUtil::CreateDir(strSaveDir); + std::string strSavePath_in = strSaveDir + m_strCurDetChannel +"_"+ roi_ext + "_"+ "in" + ".png"; + std::string strSavePath_out = strSaveDir + m_strCurDetChannel +"_"+ roi_ext + "_"+ "out" + ".png"; + cv::imwrite(strSavePath_in, result->input); + cv::imwrite(strSavePath_out, outimg); + } } completed++; } @@ -1853,7 +1864,7 @@ int ImgCheckAnalysisy::Traditional_Detect_Thread(const cv::Mat &img, cv::Mat &Re cp.nCountFilter = traditionParam.nCountFilter; cp.productId = DetImgInfo_shareP->strImgProductID; cp.productChannel = m_strCurDetChannel; - cp.bDebugsaveImg = DetImgInfo_shareP->bsaveProcessImg; + cp.bDebugsaveImg = m_pbaseCheckFunction->saveImg.bSaveAIDetImg; m_tcsCheck.SetChecConfig(&cp); } diff --git a/ConfigModule/include/CheckConfigDefine.h b/ConfigModule/include/CheckConfigDefine.h index 7afc443..754c3ac 100644 --- a/ConfigModule/include/CheckConfigDefine.h +++ b/ConfigModule/include/CheckConfigDefine.h @@ -1751,6 +1751,7 @@ struct Base_Function_SaveImg bool bSaveMarkImg; // mark 存图 bool bSaveClsImg; // 分类 存图 bool bSaveAlginImg; // 分类 存图 + bool bSaveAIDetImg; // AI 检测 存图 Base_Function_SaveImg() { @@ -1762,6 +1763,7 @@ struct Base_Function_SaveImg bSaveMarkImg = false; bSaveClsImg = false; bSaveAlginImg = false; + bSaveAIDetImg = false; } void copy(Base_Function_SaveImg tem) @@ -1771,17 +1773,18 @@ struct Base_Function_SaveImg this->bSaveMarkImg = tem.bSaveMarkImg; this->bSaveClsImg = tem.bSaveClsImg; this->bSaveAlginImg = tem.bSaveAlginImg; + this->bSaveAIDetImg = tem.bSaveAIDetImg; } 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 bSaveMarkImg %d bSaveClsImg %d bSaveAlginImg %d bSaveAIDetImg %d\n", str.c_str(), + bOpen, bSaveMarkImg, bSaveClsImg, bSaveAlginImg, bSaveAIDetImg); } 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 bSaveMarkImg %d bSaveClsImg %d bSaveAlginImg %d bSaveAIDetImg %d\n", str.c_str(), + bOpen, bSaveMarkImg, bSaveClsImg, bSaveAlginImg, bSaveAIDetImg); std::string str123 = buffer; return str123; } diff --git a/ConfigModule/src/JsonConfig.cpp b/ConfigModule/src/JsonConfig.cpp index 3a139a0..39facca 100644 --- a/ConfigModule/src/JsonConfig.cpp +++ b/ConfigModule/src/JsonConfig.cpp @@ -1315,6 +1315,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"]["Det_Save"]) + { + _config.saveImg.bSaveAlginImg = value_f["form"]["SaveImg_Config"]["Det_Save"].asBool(); + } } else {