@startuml title 测量结果检验模块 class Railing { + * 构造函数() + * a,b,c代表栏杆所在直线方程, ax+by+c=0() + * width:表示栏杆的宽() +Railing(float a,float b,float c,float width); + * 检验结果框,是否会与栏杆冲突() +Error_manager verify(cv::RotatedRect rotate_rect); -float m_a; -float m_b; -float m_c; -float m_width; } note left of Railing 栏杆检验类 检验测量结果是否碰撞栏杆 栏杆信息包括:栏杆斜角,宽度 end note class Terminal_region_limit { +Terminal_region_limit(Railing* left_railing,Railing* right_railing); + * 检验是否碰撞左右栏杆,() + * 返回结果:左边碰撞,右边碰撞,左右都碰撞,正确() +Error_manager verify(cv::RotatedRect rect); -//左边栏杆 -Railing* mp_left_railing; -//右边栏杆 -Railing* mp_right_railing; } note left of Terminal_region_limit 硬件场地检验类 检验测量结果是否满足现场安全要求 end note class Verify_result { + * 构造函数 + * parameter:硬件限制配置参数 +Verify_result(Hardware_limit::Hardware_parameter parameter); + * 检验硬件限制 + * rotate_rect:待检验的旋转矩形 + * height:输入高度 + * verify_vertex:只检验中心点,不检验顶角 +Error_manager verify(cv::RotatedRect rotate_rect,float height,bool verify_vertex=true); + * 检验硬件限制 + * rotate_rect:待检验的旋转矩形 + * height:输入高度 + * terminal_id:终端编号,终端对应的左右栏杆号为: id,id+1 + * code:返回超界状态(前后左右,按位或运算) + * 主要用于电子围栏,检验栏杆及前后 +Error_manager verify(cv::RotatedRect rotate_rect,int terminal_id,int& code); -Hardware_limit::Hardware_parameter m_hardware_parameter; } note left of Verify_result 测量结果检测器 根据现场硬件要求 检验测量结果是否合法(安全性) end note note left of Hardware_parameter 硬件配置类 配置现场硬件参数 包括 前后左右超界范围,栏杆参数等 end note Terminal_region_limit --> Railing Verify_result --> Terminal_region_limit Verify_result --> Hardware_parameter @enduml