diff --git a/face_rec.py b/face_rec.py index fc9b47f..75fc1a5 100644 --- a/face_rec.py +++ b/face_rec.py @@ -1477,29 +1477,27 @@ class FaceRecognitionSystem: (255, 255, 255) ) - # 绘制状态信息面板 - panel_height = 200 - panel_bg = np.zeros((panel_height, w, 3), dtype=np.uint8) + # 绘制状态信息面板(左上角小窗口) + panel_width = 350 + panel_height = 180 + panel_bg = np.zeros((panel_height, panel_width, 3), dtype=np.uint8) panel_bg[:] = (40, 40, 40) # 状态信息 - y_offset = 30 - x_offset = 15 - line_spacing = 30 + y_offset = 15 + x_offset = 10 + line_spacing = 22 # WebSocket连接状态 ws_status = "已连接" if self.ws_connected else "未连接" ws_color = (0, 255, 0) if self.ws_connected else (0, 0, 255) status_texts = [ - # f"帧率: {self.display_info['fps']:.1f} FPS", - # f"帧数: {self.display_info['frame_count']}", f"质量: {self.display_info['quality']:.1f}", - # f"检测到人脸: {'是' if self.display_info['face_detected'] else '否'}", f"WebSocket: {ws_status}", f"机器人说话: {'是' if self.robot_status['is_speaking'] else '否'}", f"机器人思考: {'是' if self.robot_status['is_thinking'] else '否'}", - f"机器人角色: {self.robot_status['role_name']}" + f"角色: {self.robot_status['role_name']}" ] # 如果人脸持续出现,显示倒计时 @@ -1512,7 +1510,7 @@ class FaceRecognitionSystem: # 使用PIL绘制中文状态文本 for i, text in enumerate(status_texts): # WebSocket状态使用特殊颜色 - if i == 4: # "WebSocket: " 这一行 + if "WebSocket" in text: panel_bg = self.cv2_add_chinese_text( panel_bg, text, @@ -1529,8 +1527,10 @@ class FaceRecognitionSystem: (255, 255, 255) ) - # 将面板添加到画面底部 - display_frame = np.vstack([display_frame, panel_bg]) + # 将小面板叠加到画面左下角 + h, w = display_frame.shape[:2] + y_start = h - panel_height + display_frame[y_start:h, 0:panel_width] = panel_bg return display_frame