|
|
|
|
@ -633,7 +633,7 @@ int ImgCheckAnalysisy::CheckRun()
|
|
|
|
|
m_CheckResult_shareP->basicResult.strChannel = m_CheckResult_shareP->in_shareImage->strChannel;
|
|
|
|
|
m_strCurDetChannel = m_CheckResult_shareP->basicResult.strChannel;
|
|
|
|
|
|
|
|
|
|
// 2、参数检查
|
|
|
|
|
/*参数检查*/
|
|
|
|
|
int rec = ConfigCheck(DetImgInfo_shareP->img);
|
|
|
|
|
if (rec != CHECK_OK)
|
|
|
|
|
{
|
|
|
|
|
@ -643,9 +643,11 @@ int ImgCheckAnalysisy::CheckRun()
|
|
|
|
|
return m_nErrorCode;
|
|
|
|
|
}
|
|
|
|
|
long time_edge_s = CheckUtil::getcurTime();
|
|
|
|
|
// 3、AI 边缘定位(内外边缘)
|
|
|
|
|
|
|
|
|
|
/*AI 边缘定位(内外边缘)*/
|
|
|
|
|
cv::RotatedRect outer_roi;
|
|
|
|
|
cv::RotatedRect inner_roi;
|
|
|
|
|
// 模型定位内外边缘
|
|
|
|
|
int reedge = AI_Edge(m_CheckResult_shareP->in_shareImage->img, outer_roi, inner_roi);
|
|
|
|
|
m_outer_roi = outer_roi.boundingRect();
|
|
|
|
|
if (reedge != 0)
|
|
|
|
|
@ -658,14 +660,23 @@ int ImgCheckAnalysisy::CheckRun()
|
|
|
|
|
long time_edge_e = CheckUtil::getcurTime();
|
|
|
|
|
m_pdetlog->AddCheckstr(PrintLevel_0, "2、pre detect", "-------------------------AI_Edge------------succ---time %ld----\n", time_edge_e - time_edge_s);
|
|
|
|
|
|
|
|
|
|
// 计算内外边缘夹角
|
|
|
|
|
float aouter = CheckUtil::getLongAxisAngle(outer_roi);
|
|
|
|
|
float ainner = CheckUtil::getLongAxisAngle(inner_roi);
|
|
|
|
|
|
|
|
|
|
float diff_align = std::fabs(aouter - ainner);
|
|
|
|
|
diff_align = std::fmod(diff_align, 180.0f); // 模 180 度
|
|
|
|
|
|
|
|
|
|
/*投影对齐模板*/
|
|
|
|
|
Adapt_Config(m_CheckResult_shareP->in_shareImage->img, m_outer_roi, m_pbaseCheckFunction->markLine.badapt_region);
|
|
|
|
|
|
|
|
|
|
m_Crop_Roi_paramImg = m_outer_roi;
|
|
|
|
|
m_pImageAllResult->pDetResult->CutRoi = m_outer_roi;
|
|
|
|
|
m_pImageAllResult->pDetResult->Param_CropRoi = m_Crop_Roi_paramImg;
|
|
|
|
|
long time_calan_e = CheckUtil::getcurTime();
|
|
|
|
|
m_pdetlog->AddCheckstr(PrintLevel_0, "2.1、pre detect", "-------------------------CalAn------------succ---time %ld----\n", time_calan_e - time_edge_s);
|
|
|
|
|
|
|
|
|
|
// 生成 检测的图片
|
|
|
|
|
/*生成 检测的图片*/
|
|
|
|
|
cv::Mat image;
|
|
|
|
|
image = m_CheckResult_shareP->in_shareImage->img;
|
|
|
|
|
if (image.channels() == 3)
|
|
|
|
|
@ -676,19 +687,19 @@ int ImgCheckAnalysisy::CheckRun()
|
|
|
|
|
{
|
|
|
|
|
m_pImageAllResult->detImg = image(m_outer_roi).clone();
|
|
|
|
|
}
|
|
|
|
|
// 多线程开启 AI 推理检测
|
|
|
|
|
/*多线程开启 AI 推理检测*/
|
|
|
|
|
long time_AI_s = CheckUtil::getcurTime();
|
|
|
|
|
m_AItask = std::make_shared<TaskInfo>();
|
|
|
|
|
m_AItask->taskname = Task_AI;
|
|
|
|
|
m_task.sendTask(m_AItask);
|
|
|
|
|
|
|
|
|
|
ImgPreDet();
|
|
|
|
|
// 更新检测区域
|
|
|
|
|
/*更新检测区域*/
|
|
|
|
|
Update_DetRoiList();
|
|
|
|
|
|
|
|
|
|
m_pdetlog->AddCheckstr(PrintLevel_0, "3、pre detect", "-------------------------pre Det--------------- \n");
|
|
|
|
|
|
|
|
|
|
// 实现PIN脚检测
|
|
|
|
|
/*实现PIN脚检测*/
|
|
|
|
|
{
|
|
|
|
|
long t41 = CheckUtil::getcurTime();
|
|
|
|
|
int reedge1111 = Edge_Qx_Det(m_pImageAllResult->detImg);
|
|
|
|
|
@ -698,10 +709,10 @@ int ImgCheckAnalysisy::CheckRun()
|
|
|
|
|
|
|
|
|
|
m_CheckResult_shareP->nresult = 0;
|
|
|
|
|
|
|
|
|
|
// 把临时可以绘制的结果都绘制出来。
|
|
|
|
|
/*把临时可以绘制的结果都绘制出来。*/
|
|
|
|
|
DrawResult_Step_1();
|
|
|
|
|
long time_AI_e;
|
|
|
|
|
// AI 推理生成
|
|
|
|
|
/*AI 推理生成*/
|
|
|
|
|
{
|
|
|
|
|
long t211 = CheckUtil::getcurTime();
|
|
|
|
|
// 对AI的结果进行 处理,等待 AI 推理全部完成。
|
|
|
|
|
|