update 标签检测存图添加参数配置

dev_lsy
liusiyang 3 weeks ago
parent 4092ade847
commit a5bfe40bee

@ -346,6 +346,7 @@ struct BQ_Result
int nresult = 1; int nresult = 1;
bool bShield_BQ = true; // 是否屏蔽标签 bool bShield_BQ = true; // 是否屏蔽标签
bool bBQ_AI_Det = false; // 是否启用标签独立AI检测 bool bBQ_AI_Det = false; // 是否启用标签独立AI检测
bool bsaveAll = false; // 是否保存所有的检测结果
std::vector<cv::Rect> pBQ_roiList; // 标签的原始区域 std::vector<cv::Rect> pBQ_roiList; // 标签的原始区域
std::vector<cv::Rect> pBQ_expandedRoiList; // 标签的扩展后区域用于AI检测 std::vector<cv::Rect> pBQ_expandedRoiList; // 标签的扩展后区域用于AI检测
std::vector<cv::Mat> pBQ_cropImages; // 标签扩展区域图像 std::vector<cv::Mat> pBQ_cropImages; // 标签扩展区域图像

@ -697,11 +697,11 @@ int CameraCheckAnalysisy::preDet_BQ(const cv::Mat &L255CutImg, std::shared_ptr<I
long ts = CheckUtil::getcurTime(); long ts = CheckUtil::getcurTime();
m_pCheck_Result->cameraBaseResult->pBQ_Result = std::make_shared<BQ_Result>(); m_pCheck_Result->cameraBaseResult->pBQ_Result = std::make_shared<BQ_Result>();
// Det_BQ 已从 Base 层移至 Channel 层
ChannelCheckFunction *pChannelFuntion_BQ = GetChannelFuntion(L255->strChannel); ChannelCheckFunction *pChannelFuntion_BQ = GetChannelFuntion(L255->strChannel);
if (pChannelFuntion_BQ) if (pChannelFuntion_BQ)
{ {
m_pCheck_Result->cameraBaseResult->pBQ_Result->bBQ_AI_Det = pChannelFuntion_BQ->function.f_Det_BQ.bBQ_AI_Det; m_pCheck_Result->cameraBaseResult->pBQ_Result->bBQ_AI_Det = pChannelFuntion_BQ->function.f_Det_BQ.bBQ_AI_Det;
m_pCheck_Result->cameraBaseResult->pBQ_Result->bsaveAll = pChannelFuntion_BQ->function.f_Det_BQ.bsaveAll;
} }
cv::Rect Det_CropRoi = m_pCheck_Result->cameraBaseResult->pEdgeDetResult->cutRoi; cv::Rect Det_CropRoi = m_pCheck_Result->cameraBaseResult->pEdgeDetResult->cutRoi;

@ -2270,7 +2270,7 @@ int ImgCheckAnalysisy::AI_Detect_BQ()
m_pdetlog->AddCheckstr(PrintLevel_2, strBaseLog, "BQ small roi num = %d", totalTasks); m_pdetlog->AddCheckstr(PrintLevel_2, strBaseLog, "BQ small roi num = %d", totalTasks);
// 调试存图:原图 + BQ小ROI框 // 调试存图:原图 + BQ小ROI框
if (DetImgInfo_shareP->bDebugsaveImg) if (m_pImageAllResult->cameraBaseResult->pBQ_Result->bsaveAll)
{ {
cv::Mat debugImg; cv::Mat debugImg;
if (AI_detImage.channels() == 1) if (AI_detImage.channels() == 1)
@ -2305,7 +2305,7 @@ int ImgCheckAnalysisy::AI_Detect_BQ()
task->engine = pAI_Model; task->engine = pAI_Model;
// 调试存图:保存每个小块 // 调试存图:保存每个小块
if (DetImgInfo_shareP->bDebugsaveImg) if (m_pImageAllResult->cameraBaseResult->pBQ_Result->bsaveAll)
{ {
cv::imwrite(m_strCurDetCamChannel + "_BQ_crop_" + std::to_string(submitted) + ".png", task->input); cv::imwrite(m_strCurDetCamChannel + "_BQ_crop_" + std::to_string(submitted) + ".png", task->input);
} }
@ -2322,7 +2322,7 @@ int ImgCheckAnalysisy::AI_Detect_BQ()
if (!outimg.empty()) if (!outimg.empty())
{ {
// 调试存图保存模型原始输出mask // 调试存图保存模型原始输出mask
if (DetImgInfo_shareP->bDebugsaveImg) if (m_pImageAllResult->cameraBaseResult->pBQ_Result->bsaveAll)
{ {
cv::imwrite(m_strCurDetCamChannel + "_BQ_outmask_" + std::to_string(result->id) + ".png", outimg); cv::imwrite(m_strCurDetCamChannel + "_BQ_outmask_" + std::to_string(result->id) + ".png", outimg);
} }

@ -1724,6 +1724,7 @@ struct Function_Det_BQ
{ {
bool bBQ_AI_Det; // 是否启用标签独立AI检测 bool bBQ_AI_Det; // 是否启用标签独立AI检测
int BQ_expand; int BQ_expand;
bool bsaveAll;
Function_Det_BQ() Function_Det_BQ()
{ {
@ -1733,22 +1734,24 @@ struct Function_Det_BQ
{ {
BQ_expand = 0; BQ_expand = 0;
bBQ_AI_Det = false; bBQ_AI_Det = false;
bsaveAll = false;
} }
void copy(Function_Det_BQ tem) void copy(Function_Det_BQ tem)
{ {
this->BQ_expand = tem.BQ_expand; this->BQ_expand = tem.BQ_expand;
this->bBQ_AI_Det = tem.bBQ_AI_Det; this->bBQ_AI_Det = tem.bBQ_AI_Det;
this->bsaveAll = tem.bsaveAll;
} }
void print(std::string str) void print(std::string str)
{ {
printf("%d BQ_expand %d bBQ_AI_Det %d\n", str.c_str(), printf("%d BQ_expand %d bBQ_AI_Det %d bsaveAll %d\n", str.c_str(),
BQ_expand, bBQ_AI_Det); BQ_expand, bBQ_AI_Det, bsaveAll);
} }
std::string GetInfo(std::string str) std::string GetInfo(std::string str)
{ {
char buffer[256]; char buffer[256];
sprintf(buffer, "%d BQ_expand %d bBQ_AI_Det %d\n", str.c_str(), sprintf(buffer, "%d BQ_expand %d bBQ_AI_Det %d bsaveAll %d\n", str.c_str(),
BQ_expand, bBQ_AI_Det); BQ_expand, bBQ_AI_Det, bsaveAll);
std::string str123 = buffer; std::string str123 = buffer;
return str123; return str123;
} }

@ -1123,6 +1123,10 @@ int ChannelFuntonConfigJson::GetFunction(Json::Value value, CheckFunction &funct
{ {
function.f_Det_BQ.BQ_expand = value_f["form"]["BQ_Param"]["BQ_expand"].asInt(); function.f_Det_BQ.BQ_expand = value_f["form"]["BQ_Param"]["BQ_expand"].asInt();
} }
if (value_f["form"]["BQ_Param"]["bsaveAll"])
{
function.f_Det_BQ.bsaveAll = value_f["form"]["BQ_Param"]["bsaveAll"].asBool();
}
} }
} }
} }

Loading…
Cancel
Save