feat 添加宏定义控制结果图返回

dev_lsy
liusiyang 3 months ago
parent 40c4b82870
commit c4747748a0

@ -26,7 +26,7 @@
// resize 图片的 宽度
#define RESIZE_IMAGE_WIDTH 1680
#define AI_Time
// #define SAVE_RESIMG
enum TEM_IMG_IDX_
{

@ -206,6 +206,16 @@ int AI_Edge_QX_Det::Detect(const cv::Mat &img, cv::Mat &detmask, DetConfig *pDet
continue;
}
if (bdege || nRuntype != 0)
{
std::string strSaveDir = "/home/aidlux/BOE/FOG/AI_Edge_Detect/";
CheckUtil::CreateDir(strSaveDir);
std::string roi_ext = "[" + std::to_string(r.x) + "," + std::to_string(r.y) + "]";
std::string strSavePath_in = strSaveDir + pDetConfig->strCamChannel + "_" + roi_ext + "_edge_in.png";
std::string strSavePath_out = strSaveDir + pDetConfig->strCamChannel + "_" + roi_ext + "_edge_out.png";
cv::imwrite(strSavePath_in, detimg);
cv::imwrite(strSavePath_out, outMask);
}
bool isAllZero = true;
if (cv::countNonZero(outMask) > 0)
{

@ -361,7 +361,7 @@ int CameraCheckAnalysisy::ResultParamJudge()
long t1 = CheckUtil::getcurTime();
int re = m_imageResultJudge.MergeResult(m_pCheck_Result->ImageALLDetResultList.at(imgidx), ptemre);
long t2 = CheckUtil::getcurTime();
#ifdef AI_Time
#ifdef SAVE_RESIMG
m_imageResultJudge.DrawResult(m_pCheck_Result->ImageALLDetResultList.at(imgidx));
#endif
long t3 = CheckUtil::getcurTime();

@ -597,7 +597,7 @@ int ImageResultJudge::ResultJudge(std::shared_ptr<ImageAllResult> pImageResult)
// CheckUtil::printROI(CutRoi, "CutRoi");
cv::Size sz = cv::Size(QX_SAMLLIMG_WIDTH, QX_SAMLLIMG_HEIGHT);
#ifdef AI_Time
#ifdef SAVE_RESIMG
if (pImageResult->detImg.channels() == 1)
{
cv::cvtColor(pImageResult->detImg(CutRoi), tem.srcImg, cv::COLOR_GRAY2BGR);
@ -652,7 +652,7 @@ int ImageResultJudge::ResultJudge(std::shared_ptr<ImageAllResult> pImageResult)
m_CheckResult_shareP->nresult = nqx_type;
}
#ifdef AI_Time
#ifdef SAVE_RESIMG
GetAIDetImg(pImageResult, pCenter, tem.AI_in_Img, tem.AI_out_img);
#endif
m_CheckResult_shareP->qxImageResult.push_back(tem);
@ -665,7 +665,7 @@ int ImageResultJudge::ResultJudge(std::shared_ptr<ImageAllResult> pImageResult)
m_CheckResult_shareP->nYS_result = nqx_type;
}
#ifdef AI_Time
#ifdef SAVE_RESIMG
GetAIDetImg(pImageResult, pCenter, tem.AI_in_Img, tem.AI_out_img);
#endif
@ -844,7 +844,7 @@ int ImageResultJudge::MergeResult(std::shared_ptr<ImageAllResult> pImageResult,
cv::Rect CutRoi = GetCutRoi(roi, pImageResult->detImg);
cv::Size sz = cv::Size(QX_SAMLLIMG_WIDTH, QX_SAMLLIMG_HEIGHT);
#ifdef AI_Time
#ifdef SAVE_RESIMG
if (pImageResult->detImg.channels() == 1)
{
cv::cvtColor(pImageResult->detImg(CutRoi), tem.srcImg, cv::COLOR_GRAY2BGR);
@ -915,7 +915,7 @@ int ImageResultJudge::MergeResult(std::shared_ptr<ImageAllResult> pImageResult,
{
m_CheckResult_shareP->nresult = nqx_type;
}
#ifdef AI_Time
#ifdef SAVE_RESIMG
GetAIDetImg(pImageResult, pCenter, tem.AI_in_Img, tem.AI_out_img);
#endif
m_CheckResult_shareP->qxImageResult.push_back(tem);

@ -526,6 +526,7 @@ int ImgCheckAnalysisy::CheckRun()
m_pdetlog->AddCheckstr(PrintLevel_0, "4、BQ Detect", "-------------------------BQ AI Detect--------%ld ms-------\n", t_BQ_e - t_BQ_s);
}
#ifdef SAVE_RESIMG
m_CheckResult_shareP->resultMaskImg = m_pImageAllResult->qx_DetAIResult->AI_MaskImg;
// 将BQ标签的AI mask合并到结果mask中
@ -537,6 +538,7 @@ int ImgCheckAnalysisy::CheckRun()
cv::bitwise_or(m_CheckResult_shareP->resultMaskImg, bqMask, m_CheckResult_shareP->resultMaskImg);
}
}
#endif
// cv::imwrite("dddddddd.png", m_pImageAllResult->qx_DetAIResult->AI_MaskImg);
// if (!m_pImageAllResult->qx_DetAIResult->AI_MaskImg.empty())
@ -2968,9 +2970,15 @@ int ImgCheckAnalysisy::AI_Detect_QX()
pDetAIResult->blobDetParam->AIMaskImgBLobQueue.push(temAIresult);
}
}
// AI检测残点图存图:仅保存有残点(mask非零)的结果,最多保存前10个
if (DetImgInfo_shareP->bDebugsaveImg && cv::countNonZero(AIresult) > 0 && nSaveCnt < 10 && (m_strCurDetChannel == "L0" || m_strCurDetChannel == "Down-Particle"))
// AI检测残点图存图
if (DetImgInfo_shareP->bDebugsaveImg)
{
bool bNeedSave = false;
std::string roi_ext = "[" + std::to_string(result->roi.x) + "," + std::to_string(result->roi.y) + "]";
bNeedSave = true;
if (bNeedSave && !AIresult.empty())
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);
@ -3281,6 +3289,7 @@ int ImgCheckAnalysisy::ResizeImg()
float fw = RESIZE_IMAGE_WIDTH * 1.0f / m_pImageAllResult->detImg.cols;
sz.height = int(m_pImageAllResult->detImg.rows * fw);
#ifdef SAVE_RESIMG
cv::resize(m_pImageAllResult->detImg, m_pImageAllResult->resultImg, sz);
// 需要绘制屏蔽区
@ -3303,6 +3312,12 @@ int ImgCheckAnalysisy::ResizeImg()
}
m_CheckResult_shareP->resultimg = m_pImageAllResult->resultImg;
#else
m_pImageAllResult->fscale_detToresult_x = RESIZE_IMAGE_WIDTH * 1.0f / m_pImageAllResult->detImg.cols;
m_pImageAllResult->fscale_detToresult_y = sz.height * 1.0f / m_pImageAllResult->detImg.rows;
#endif
m_pdetlog->AddCheckstr(PrintLevel_1, "ResizeImg", "showImg size [w %d,h %d]-> show img [w %d,h %d] ",
m_CutRoi.width, m_CutRoi.height, sz.width, sz.height);
return 0;
@ -3470,6 +3485,12 @@ int ImgCheckAnalysisy::Edge_Det()
int ImgCheckAnalysisy::DrawResult_Step_1()
{
m_pdetlog->AddCheckstr(PrintLevel_0, "DrawResult_Step_1", "=======start");
#ifndef SAVE_RESIMG
if (m_CheckResult_shareP->resultimg.empty())
{
return 0;
}
#endif
// std::cout << m_pBasicConfig->bDrawPreRoi << std::endl;
if (m_pBasicConfig->bDrawPreRoi)
{
@ -4484,11 +4505,13 @@ int ImgCheckAnalysisy::ImgPreDet()
creatsavedir();
}
m_CheckResult_shareP->cutSrcimg = m_pImageAllResult->detImg;
ResizeImg();
#ifdef SAVE_RESIMG
m_CheckResult_shareP->cutSrcimg = m_pImageAllResult->detImg;
m_pImageAllResult->fscale_detToresult_x = m_pImageAllResult->resultImg.cols * 1.0f / m_pImageAllResult->detImg.cols;
m_pImageAllResult->fscale_detToresult_y = m_pImageAllResult->resultImg.rows * 1.0f / m_pImageAllResult->detImg.rows;
#else
ResizeImg();
#endif
return 0;
}

Loading…
Cancel
Save