feat: 原版增加斑点数量统计
输出检测到的有效斑点数、面积统计(最小/最大/均值/中位数)
This commit is contained in:
@@ -410,7 +410,23 @@ def main() -> None:
|
|||||||
bw_img.save(os.path.join(OUTPUT_DIR, 'result_I_bw.png'))
|
bw_img.save(os.path.join(OUTPUT_DIR, 'result_I_bw.png'))
|
||||||
print(" 保存: result_I_bw.png")
|
print(" 保存: result_I_bw.png")
|
||||||
|
|
||||||
# ---- 步骤4: 网格叠加图 ----
|
# ---- 步骤4: 统计点数 ----
|
||||||
|
print("\n[步骤4] 统计斑点数量...")
|
||||||
|
labeled_spots, num_spots = ndimage.label(bw_full)
|
||||||
|
# 统计每个斑点的面积
|
||||||
|
spot_sizes = []
|
||||||
|
for i in range(1, num_spots + 1):
|
||||||
|
size = int(np.sum(labeled_spots == i))
|
||||||
|
spot_sizes.append(size)
|
||||||
|
spot_sizes = np.array(spot_sizes)
|
||||||
|
# 过滤极小噪声
|
||||||
|
valid_spots = spot_sizes[spot_sizes >= 10]
|
||||||
|
print(f" 检测到 {len(valid_spots)} 个斑点 (面积≥10像素)")
|
||||||
|
print(f" 斑点面积: 最小 {valid_spots.min()}, 最大 {valid_spots.max()}, "
|
||||||
|
f"均值 {valid_spots.mean():.1f}, 中位数 {np.median(valid_spots):.0f}")
|
||||||
|
print(f" 网格子块数 (理论值): {(len(x_grid)-1) * (len(y_grid)-1)}")
|
||||||
|
|
||||||
|
# ---- 步骤5: 网格叠加图 ----
|
||||||
if img.ndim == 3:
|
if img.ndim == 3:
|
||||||
overlay = img[:, :, :3].copy()
|
overlay = img[:, :, :3].copy()
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user