From b9dd287c70529a8025d1f695ee487b8ba5cc7c84 Mon Sep 17 00:00:00 2001 From: Hu Chunming <2657262686@qq.com> Date: Wed, 6 Aug 2025 16:13:08 +0800 Subject: [PATCH] 举行过滤同步为多边形 --- src/ai_engine_module/pedestrian_vehicle_retrograde.cpp | 17 +++++++++++++---- src/ai_engine_module/pedestrian_vehicle_trespass.cpp | 18 +++++++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp b/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp index 3090e43..de312e1 100644 --- a/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp +++ b/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp @@ -15,6 +15,7 @@ #include "../decoder/interface/DeviceMemory.hpp" #include "../common/logger.hpp" #include "../ai_platform/mvpt_process_assist.h" +#include "../helpers/img_util.h" namespace ai_engine_module { namespace pedestrian_vehicle_retrograde { @@ -50,11 +51,19 @@ bool is_valid_box(const int &cls, const algorithm_type_t &algor_type) { bool is_valid_box(const box_t &box, const algorithm_type_t &algor_type, const task_param_manager::algo_param_type_t_ *params_ptr = nullptr) { - if (!params_ptr) - return false; + if (!params_ptr || params_ptr->basic_param == nullptr) + return false; - if (!snapshot_legal_inarea(params_ptr->basic_param->algor_valid_rect, box.left, box.top, box.right, box.bottom)) - return false; + universal_algor_adapt_param *adapt_param = params_ptr->basic_param->adapt_param; + if (nullptr == adapt_param) { + return false; + } + + sy_point center; + center.x_ = (box.right + box.left)/ 2 ; + center.y_ = (box.bottom + box.top) / 2; + if (!common::isInPolygon(adapt_param->points, adapt_param->points_count, center)) + return false; if (params_ptr->algor_param == nullptr) return false; diff --git a/src/ai_engine_module/pedestrian_vehicle_trespass.cpp b/src/ai_engine_module/pedestrian_vehicle_trespass.cpp index 2847a11..7bd1876 100644 --- a/src/ai_engine_module/pedestrian_vehicle_trespass.cpp +++ b/src/ai_engine_module/pedestrian_vehicle_trespass.cpp @@ -17,7 +17,7 @@ #include "../decoder/interface/DeviceMemory.hpp" #include "../common/logger.hpp" #include "../ai_platform/mvpt_process_assist.h" - +#include "../helpers/img_util.h" namespace ai_engine_module { namespace pedestrian_vehicle_trespass { @@ -55,11 +55,19 @@ bool is_valid_box(const int &cls, const algorithm_type_t &algor_type) { bool is_valid_box(const box_t &box, const algorithm_type_t &algor_type, const task_param_manager::algo_param_type_t_ *params_ptr = nullptr) { - if (!params_ptr) - return false; + if (!params_ptr || params_ptr->basic_param == nullptr) + return false; - if (!snapshot_legal_inarea(params_ptr->basic_param->algor_valid_rect, box.left, box.top, box.right, box.bottom)) - return false; + universal_algor_adapt_param *adapt_param = params_ptr->basic_param->adapt_param; + if (nullptr == adapt_param) { + return false; + } + + sy_point center; + center.x_ = (box.right + box.left)/ 2 ; + center.y_ = (box.bottom + box.top) / 2; + if (!common::isInPolygon(adapt_param->points, adapt_param->points_count, center)) + return false; if (params_ptr->algor_param == nullptr) return false; -- libgit2 0.21.4