修改状态信息显示位置。

This commit is contained in:
Tian jianyong 2025-12-18 17:15:05 +08:00
parent 353543103d
commit b9f8e1ed17

View File

@ -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