|
|
|
|
@ -100,6 +100,7 @@ deal::deal()
|
|
|
|
|
m_nCamIdx = 0;
|
|
|
|
|
m_nCurUseCPUIDX = 0;
|
|
|
|
|
m_nSaveDetprocessImg = 0;
|
|
|
|
|
m_nPushImgCount = 0;
|
|
|
|
|
m_DetResult.Init();
|
|
|
|
|
for (int i = 0; i < READ_IMG_THREAD_NUM; i++)
|
|
|
|
|
{
|
|
|
|
|
@ -398,7 +399,7 @@ int deal::preCheck()
|
|
|
|
|
IN_IMG_Status_ temstatus = IN_IMG_Status_Start;
|
|
|
|
|
std::shared_ptr<JC_IMAGE_INFO_> tempDetImageInfo = nullptr;
|
|
|
|
|
|
|
|
|
|
int pushImgNum = 0;
|
|
|
|
|
m_nPushImgCount = 0; // 重置送检计数(拆分后每张子图计 1)
|
|
|
|
|
long det_time_start = getcurTime();
|
|
|
|
|
std::string strImgSN = strProductID;
|
|
|
|
|
int GetImgNum = 0;
|
|
|
|
|
@ -460,7 +461,7 @@ int deal::preCheck()
|
|
|
|
|
|
|
|
|
|
saveImg("/home/aidlux/BOE/ZB_PLATE/testresult/", checkResult);
|
|
|
|
|
getresultNum++;
|
|
|
|
|
if (getresultNum == pushImgNum)
|
|
|
|
|
if (getresultNum >= m_nPushImgCount)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
@ -1079,12 +1080,47 @@ int deal::SendImgToCheck(std::shared_ptr<JC_IMAGE_INFO_> pDetImageInfo, IN_IMG_S
|
|
|
|
|
{
|
|
|
|
|
tem->bsaveProcessImg = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int re = 0;
|
|
|
|
|
|
|
|
|
|
// 一张图拍多个产品:上下拆分成多张,子图产品ID加索引后缀,分别送检
|
|
|
|
|
std::vector<cv::Mat> splitList;
|
|
|
|
|
if (!pDetImageInfo->img.empty() && pDetImageInfo->img.rows >= 2)
|
|
|
|
|
{
|
|
|
|
|
int half = pDetImageInfo->img.rows / 2;
|
|
|
|
|
splitList.push_back(pDetImageInfo->img(cv::Rect(0, 0, pDetImageInfo->img.cols, half)).clone());
|
|
|
|
|
splitList.push_back(pDetImageInfo->img(cv::Rect(0, half, pDetImageInfo->img.cols, pDetImageInfo->img.rows - half)).clone());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (splitList.size() > 1)
|
|
|
|
|
{
|
|
|
|
|
for (size_t i = 0; i < splitList.size(); i++)
|
|
|
|
|
{
|
|
|
|
|
std::shared_ptr<shareImage> sub = std::make_shared<shareImage>();
|
|
|
|
|
*sub = *tem;
|
|
|
|
|
sub->img = splitList[i];
|
|
|
|
|
sub->strImgProductID = tem->strImgProductID + "_" + std::to_string(i);
|
|
|
|
|
sub->Status = IN_IMG_Status_OneImg;
|
|
|
|
|
if (m_pALLImgCheckAnalysisy)
|
|
|
|
|
{
|
|
|
|
|
re = m_pALLImgCheckAnalysisy->SetDataRun_SharePtr(sub);
|
|
|
|
|
if (re != 0)
|
|
|
|
|
{
|
|
|
|
|
return re;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_nPushImgCount++;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (m_pALLImgCheckAnalysisy)
|
|
|
|
|
{
|
|
|
|
|
re = m_pALLImgCheckAnalysisy->SetDataRun_SharePtr(tem);
|
|
|
|
|
if (re == 0)
|
|
|
|
|
{
|
|
|
|
|
m_nPushImgCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return re;
|
|
|
|
|
|