diff --git a/src/cDNA_segmentation.py b/src/cDNA_segmentation.py index 8d9dc37..80a348d 100644 --- a/src/cDNA_segmentation.py +++ b/src/cDNA_segmentation.py @@ -410,7 +410,23 @@ def main() -> None: bw_img.save(os.path.join(OUTPUT_DIR, '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: overlay = img[:, :, :3].copy() else: