增加红框

This commit is contained in:
zengqile 2026-01-23 14:42:43 +08:00
parent 8950b350ad
commit 394c3430f9
6 changed files with 32 additions and 18 deletions

View File

@ -1076,13 +1076,16 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o
/usr/include/c++/11/bits/stl_bvector.h
/usr/include/c++/11/bits/vector.tcc
/usr/include/c++/11/pstl/execution_defs.h
/usr/include/c++/11/chrono
/usr/include/c++/11/ratio
/usr/include/c++/11/cstdint
/usr/include/c++/11/atomic
/usr/include/c++/11/bits/atomic_base.h
/usr/lib/gcc/aarch64-linux-gnu/11/include/stdint.h
/usr/include/stdint.h
/usr/include/aarch64-linux-gnu/bits/wchar.h
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h
/usr/include/c++/11/bits/atomic_lockfree_defines.h
/usr/include/c++/11/chrono
/usr/include/c++/11/ratio
/usr/include/c++/11/cstdint
/usr/include/c++/11/limits
/usr/include/c++/11/ctime
/usr/include/time.h
@ -1133,8 +1136,6 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o
/usr/include/c++/11/bits/cxxabi_init_exception.h
/usr/include/c++/11/bits/nested_exception.h
/usr/include/c++/11/bits/shared_ptr_atomic.h
/usr/include/c++/11/bits/atomic_base.h
/usr/include/c++/11/bits/atomic_lockfree_defines.h
/usr/include/c++/11/backward/auto_ptr.h
/usr/include/c++/11/pstl/glue_memory_defs.h
/usr/include/opencv4/opencv2/core/core.hpp
@ -1270,6 +1271,9 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o
/usr/include/opencv4/opencv2/core/optim.hpp
/usr/include/opencv4/opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/core/cvdef.h
/usr/include/c++/11/thread
/usr/include/c++/11/bits/std_thread.h
/usr/include/c++/11/bits/this_thread_sleep.h
/app/src/algorithm/IAnalysisModule.h
/app/src/vendor/nlohmann/json.hpp
/usr/include/c++/11/iterator
@ -1415,7 +1419,6 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o
/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
/usr/include/c++/11/atomic
/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
@ -1677,9 +1680,6 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o
/usr/include/c++/11/condition_variable
/usr/include/c++/11/future
/usr/include/c++/11/bits/atomic_futex.h
/usr/include/c++/11/bits/std_thread.h
/usr/include/c++/11/thread
/usr/include/c++/11/bits/this_thread_sleep.h
/usr/include/spdlog/spdlog.h
/usr/include/spdlog/common.h
/usr/include/spdlog/tweakme.h

View File

@ -1074,13 +1074,16 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o: ../src/al
/usr/include/c++/11/bits/stl_bvector.h \
/usr/include/c++/11/bits/vector.tcc \
/usr/include/c++/11/pstl/execution_defs.h \
/usr/include/c++/11/chrono \
/usr/include/c++/11/ratio \
/usr/include/c++/11/cstdint \
/usr/include/c++/11/atomic \
/usr/include/c++/11/bits/atomic_base.h \
/usr/lib/gcc/aarch64-linux-gnu/11/include/stdint.h \
/usr/include/stdint.h \
/usr/include/aarch64-linux-gnu/bits/wchar.h \
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \
/usr/include/c++/11/bits/atomic_lockfree_defines.h \
/usr/include/c++/11/chrono \
/usr/include/c++/11/ratio \
/usr/include/c++/11/cstdint \
/usr/include/c++/11/limits \
/usr/include/c++/11/ctime \
/usr/include/time.h \
@ -1131,8 +1134,6 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o: ../src/al
/usr/include/c++/11/bits/cxxabi_init_exception.h \
/usr/include/c++/11/bits/nested_exception.h \
/usr/include/c++/11/bits/shared_ptr_atomic.h \
/usr/include/c++/11/bits/atomic_base.h \
/usr/include/c++/11/bits/atomic_lockfree_defines.h \
/usr/include/c++/11/backward/auto_ptr.h \
/usr/include/c++/11/pstl/glue_memory_defs.h \
/usr/include/opencv4/opencv2/core/core.hpp \
@ -1268,6 +1269,9 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o: ../src/al
/usr/include/opencv4/opencv2/core/optim.hpp \
/usr/include/opencv4/opencv2/core/ovx.hpp \
/usr/include/opencv4/opencv2/core/cvdef.h \
/usr/include/c++/11/thread \
/usr/include/c++/11/bits/std_thread.h \
/usr/include/c++/11/bits/this_thread_sleep.h \
../src/algorithm/IAnalysisModule.h \
../src/vendor/nlohmann/json.hpp \
/usr/include/c++/11/iterator \
@ -1413,7 +1417,6 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o: ../src/al
/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \
/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \
/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \
/usr/include/c++/11/atomic \
/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \
@ -1675,9 +1678,6 @@ CMakeFiles/edge_proxy_lib.dir/src/algorithm/HumanDetectionModule.cc.o: ../src/al
/usr/include/c++/11/condition_variable \
/usr/include/c++/11/future \
/usr/include/c++/11/bits/atomic_futex.h \
/usr/include/c++/11/bits/std_thread.h \
/usr/include/c++/11/thread \
/usr/include/c++/11/bits/this_thread_sleep.h \
/usr/include/spdlog/spdlog.h \
/usr/include/spdlog/common.h \
/usr/include/spdlog/tweakme.h \

Binary file not shown.

Binary file not shown.

View File

@ -279,6 +279,7 @@ void HumanDetectionModule::update_tracker(detect_result_group_t& detect_result_g
// [0.1秒极速响应]
if (stay_time >= 0.1) {
person_qualified_for_light = true;
person.alarm_triggered = true;
}
}
}
@ -313,18 +314,31 @@ void HumanDetectionModule::update_tracker(detect_result_group_t& detect_result_g
}
void HumanDetectionModule::draw_results(cv::Mat& frame) {
// 1. 绘制多边形警戒区
if (!intrusion_zone_.empty()) {
const cv::Point* pts = &intrusion_zone_[0];
int npts = (int)intrusion_zone_.size();
cv::polylines(frame, &pts, &npts, 1, true, cv::Scalar(255, 255, 0), 2);
}
// 2. 绘制人员框和中心点
for (auto const& [id, person] : this->tracked_persons_) {
if (person.missing_frames > 0)
continue;
// 变色逻辑:触发报警(或开灯)显示红色,否则绿色
cv::Scalar box_color =
person.alarm_triggered ? cv::Scalar(0, 0, 255) : cv::Scalar(0, 255, 0);
// 绘制矩形框
cv::rectangle(frame, person.box, box_color, 2);
// [恢复] 绘制中心红点 (用于直观看到判定点)
// 半径为4填充实心(-1),颜色为红色
cv::Point center_point = (person.box.tl() + person.box.br()) / 2;
cv::circle(frame, center_point, 4, cv::Scalar(0, 0, 255), -1);
// 绘制 ID 标签
std::string label = "ID:" + std::to_string(id);
cv::putText(frame, label, person.box.tl(), cv::FONT_HERSHEY_SIMPLEX, 0.6,
cv::Scalar(255, 255, 255), 2);