From 69aaaeac0984d4a73fb0a1fd3cd0b7b29b8a3d01 Mon Sep 17 00:00:00 2001 From: root <13910913995@163.com> Date: Fri, 12 Dec 2025 19:02:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E8=83=8C=E6=99=AF?= =?UTF-8?q?=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Log/OrbbecSDK.log.txt | Bin 2976217 -> 2983087 bytes backend/devices/femtobolt_manager.py | 11 +++++------ backend/devices/pressure_manager.py | 9 ++++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/backend/Log/OrbbecSDK.log.txt b/backend/Log/OrbbecSDK.log.txt index aca2d1d0dcb5b865c4891819e53617f19c4d1815..156de2b6baf2ee93345ac4ce26fd3cc38d6d5c6c 100644 GIT binary patch delta 2208 zcmZvd&r4KM6vvqy%j&6R>8RuU(ott7f4qC&efQmKq}i%vZVD3@RvIEH4VbM$;Vf*? zFNV4V5ke4Di-@wewQdm-1TOmnf?D(o1iRPp&AoSK|KXhP`SCqx^YeP-<;}N|Wr)BY zsDUWd!d}=1b+8`}z(H`J9vYw#4#8n)f+KJgnxO?^&)2YD#KG3a~Kzd0+`icNJLY{(-+J{}-0<$f?ZacTO(;^oN+>{G@>CK0=+5dmU0 zG4-e3i zr5iO|tR-_%1LDkpMCPfJ5Nn_E<%BX6!looeJu7!d5yUJ@5u;+TGd8DZL(~#3sa~=C zH+@B;Fy^kIsq|`uCUH6(1|^tUJra@E&X6t$)4&X(1jWU-w%ECF>MD*kbv3fm<7iUc zZI3xR$e8SawjK(6(3Lx@>GoVg4c%%1MiQEA&t>L{u+oM%XqM(7*AgzHv(O%| zWaoO}oYZqs=9=SYV)SFaPm2-A>h+pf>BI3t%IGr-d~-c4_ff(aveOvuQ-rmL74B0^ zV3^BtA0^zy24J~Q0*FaK+x9B%QxvxbAPn~f*yWyGvEe>NaLWv87lh$HhIoKHLrZwc@iwniwCwZqflNF7N&P*y4B{}BH+Loq@^Rx5eJ6*Z%bXSmMXT&D?ZupvmB6>U` zjaw1#_LAe450PAP9>}$`#jPfHUn^(6r=EwIOh{R)dM@9`a=sQM6+IN&OV0WG+Zpl? D-34`U delta 101 zcmV~$$rZs+006-E5&OQz9y<|*>B3-i1&?-L$^f})a0Sw&S%T|-k# mTSr$<-@wqw*hFkwX=6{baHl)y2{?S{Qd{D$RUFO diff --git a/backend/devices/femtobolt_manager.py b/backend/devices/femtobolt_manager.py index 771bf449..0715abe2 100644 --- a/backend/devices/femtobolt_manager.py +++ b/backend/devices/femtobolt_manager.py @@ -249,21 +249,20 @@ class FemtoBoltManager(BaseDevice): try: # 设置图形背景色和边距 - self.fig.patch.set_facecolor((50/255, 50/255, 50/255)) # 设置深灰色背景 rgb(50, 50, 50) + self.fig.patch.set_facecolor((38/255, 48/255, 64/255)) self.fig.tight_layout(pad=0) # 移除所有边距 # 清除之前的绘图 self.ax.clear() - self.ax.set_facecolor((50/255, 50/255, 50/255)) # 设置坐标区域背景色为黑色 + self.ax.set_facecolor((38/255, 48/255, 64/255)) # 深度数据过滤(与display_x.py完全一致) depth[depth > self.depth_range_max] = 0 depth[depth < self.depth_range_min] = 0 - # 背景图(深灰色背景) - # 创建RGB格式的背景图,确保颜色准确性 - background_gray_value = 50 # RGB(50, 50, 50) - background = np.full((*depth.shape, 3), background_gray_value, dtype=np.uint8) + # 背景图(#263040) + background = np.zeros((*depth.shape, 3), dtype=np.uint8) + background[:] = (38, 48, 64) # 使用 np.ma.masked_equal() 来屏蔽深度图中的零值 depth = np.ma.masked_equal(depth, 0) diff --git a/backend/devices/pressure_manager.py b/backend/devices/pressure_manager.py index 11a9465d..d11138b2 100644 --- a/backend/devices/pressure_manager.py +++ b/backend/devices/pressure_manager.py @@ -570,18 +570,25 @@ class MockPressureDevice: def _generate_heatmap_image(self, raw_data: np.ndarray) -> str: try: + # 底值阈值(小于等于该值的区域作为背景) vmin = 10 + # 归一化到 [0,255],避免 dmax==dmin 时除零 dmin, dmax = np.min(raw_data), np.max(raw_data) norm = np.clip((raw_data - dmin) / max(dmax - dmin, 1) * 255, 0, 255).astype(np.uint8) + # 应用伪彩色(JET)以增强对比 heatmap = cv2.applyColorMap(norm, cv2.COLORMAP_JET) - heatmap[raw_data <= vmin] = (0, 0, 0) + # 将低值区域设置为背景色 #263040;OpenCV 使用 BGR 通道顺序 -> (64, 48, 38) + heatmap[raw_data <= vmin] = (64, 48, 38) + # 放大显示,保持像素边界清晰 rows, cols = raw_data.shape heatmap = cv2.resize(heatmap, (cols * 4, rows * 4), interpolation=cv2.INTER_NEAREST) + # 转换为 RGB 交给 PIL 编码 heatmap_rgb = cv2.cvtColor(heatmap, cv2.COLOR_BGR2RGB) from PIL import Image buffer = BytesIO() Image.fromarray(heatmap_rgb).save(buffer, format="PNG") buffer.seek(0) + # 输出 data URL 便于前端直接显示 image_base64 = base64.b64encode(buffer.getvalue()).decode("utf-8") return f"data:image/png;base64,{image_base64}" except Exception: