Spaces:
Running
on
Zero
Running
on
Zero
Update lighting_analyzer.py
Browse files- lighting_analyzer.py +7 -7
lighting_analyzer.py
CHANGED
@@ -178,7 +178,7 @@ class LightingAnalyzer:
|
|
178 |
horizontal_strength = np.mean(np.abs(gx))
|
179 |
gradient_ratio = vertical_strength / max(horizontal_strength, 1e-5)
|
180 |
|
181 |
-
#
|
182 |
brightness_uniformity = 1 - min(1, brightness_std / max(avg_brightness, 1e-5))
|
183 |
|
184 |
# -- 高效的天花板分析 --
|
@@ -240,9 +240,9 @@ class LightingAnalyzer:
|
|
240 |
top_gradient = np.mean(np.abs(cv2.Sobel(top_edge, cv2.CV_32F, 0, 1, ksize=3)))
|
241 |
|
242 |
# 標準化
|
243 |
-
left_edge_density = min(1
|
244 |
-
right_edge_density = min(1
|
245 |
-
top_edge_density = min(1
|
246 |
|
247 |
# 封閉環境通常在圖像邊緣有較強的梯度
|
248 |
boundary_edge_score = (left_edge_density + right_edge_density + top_edge_density) / 3
|
@@ -370,9 +370,9 @@ class LightingAnalyzer:
|
|
370 |
|
371 |
# 加強對特定類型光源的檢測
|
372 |
if circular_light_count >= 1: # 即便只有一個圓形光源也很可能是室內
|
373 |
-
light_contribution = weights.get("light_features", 1.2) * 2
|
374 |
elif indoor_light_score > 0.3:
|
375 |
-
light_contribution = weights.get("light_features", 1.2) * 1
|
376 |
|
377 |
indoor_score += light_contribution
|
378 |
feature_contributions["light_features"] = light_contribution
|
@@ -411,7 +411,7 @@ class LightingAnalyzer:
|
|
411 |
|
412 |
# 6. 垂直/水平梯度比率
|
413 |
gradient_contribution = 0
|
414 |
-
if features["gradient_ratio"] > 2
|
415 |
combined_uniformity = (features["brightness_uniformity"] +
|
416 |
features.get("ceiling_uniformity", 0)) / 2
|
417 |
|
|
|
178 |
horizontal_strength = np.mean(np.abs(gx))
|
179 |
gradient_ratio = vertical_strength / max(horizontal_strength, 1e-5)
|
180 |
|
181 |
+
# 亮度的均勻性(分布)
|
182 |
brightness_uniformity = 1 - min(1, brightness_std / max(avg_brightness, 1e-5))
|
183 |
|
184 |
# -- 高效的天花板分析 --
|
|
|
240 |
top_gradient = np.mean(np.abs(cv2.Sobel(top_edge, cv2.CV_32F, 0, 1, ksize=3)))
|
241 |
|
242 |
# 標準化
|
243 |
+
left_edge_density = min(1, left_gradient / 50)
|
244 |
+
right_edge_density = min(1, right_gradient / 50)
|
245 |
+
top_edge_density = min(1, top_gradient / 50)
|
246 |
|
247 |
# 封閉環境通常在圖像邊緣有較強的梯度
|
248 |
boundary_edge_score = (left_edge_density + right_edge_density + top_edge_density) / 3
|
|
|
370 |
|
371 |
# 加強對特定類型光源的檢測
|
372 |
if circular_light_count >= 1: # 即便只有一個圓形光源也很可能是室內
|
373 |
+
light_contribution = weights.get("light_features", 1.2) * 2
|
374 |
elif indoor_light_score > 0.3:
|
375 |
+
light_contribution = weights.get("light_features", 1.2) * 1
|
376 |
|
377 |
indoor_score += light_contribution
|
378 |
feature_contributions["light_features"] = light_contribution
|
|
|
411 |
|
412 |
# 6. 垂直/水平梯度比率
|
413 |
gradient_contribution = 0
|
414 |
+
if features["gradient_ratio"] > 2:
|
415 |
combined_uniformity = (features["brightness_uniformity"] +
|
416 |
features.get("ceiling_uniformity", 0)) / 2
|
417 |
|