diff --git a/HanddleAI/HandleAiUi-new/algo/ALGO_Inspection.h b/HanddleAI/HandleAiUi-new/algo/ALGO_Inspection.h index 0953eb23..bb311ad6 100644 --- a/HanddleAI/HandleAiUi-new/algo/ALGO_Inspection.h +++ b/HanddleAI/HandleAiUi-new/algo/ALGO_Inspection.h @@ -17,6 +17,17 @@ std::vector pinDetEvaluate(cv::Mat& src, handleAiModelManager* } std::vector getpinHandleAiEvaluateRect(std::shared_ptr data, cv::Mat& src, std::vector& result) { + //Bbox转Rect + std::vector rectVec; + for (auto detResult : result) + rectVec.push_back(cv::Rect(detResult.x - detResult.w / 2, detResult.y - detResult.h / 2, detResult.w, detResult.h)); + + //计算过滤条件 + int totalWidth = 0; + for (auto detResult : result) + totalWidth += detResult.w; + int avgWidth= totalWidth / rectVec.size(); + std::vector resultRectVec; cv::Point centerPos(src.rows / 2, src.cols / 2); cv::Rect targetRect(src.cols / 3, src.rows / 3, src.cols / 3, src.rows / 3); @@ -188,14 +199,29 @@ cv::Mat pinHandleAiEvaluate(std::shared_ptr data, cv::Mat& src, return Paint; } //主函数 +int ALGO_InspectionErrorCheck(std::shared_ptr data) +{ + if (data->oriImgs.size() < 1) + { + qDebug() << __FUNCDNAME__ << __LINE__ << "camera Mat size is Error!"; + return 1; + } + if (data->productType == -1) + { + qDebug() << __FUNCDNAME__ << __LINE__ << "productType -1"; + return 2; + } + return 0; +} void ALGO_Inspection(std::shared_ptr data, handleAiModelManager* _handleAiModelManager) { #if disableeAlgo return; #endif - if (data->oriImgs.size() < 1) + int errorCode = ALGO_InspectionErrorCheck(data); + if (errorCode != 0) { - qDebug() << __FUNCDNAME__ << __LINE__ << "camera Mat size is Error!"; + qDebug() << __FUNCDNAME__ << __LINE__ << "errorCheck ERR"<< errorCode; return; } cv::Mat src = data->oriImgs[0];