|
|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|