You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用skimage、napari将blob_dog检测结果添加到3D图像堆栈并生成掩码

完整可运行实现代码

from skimage.data import binary_blobs as BBlobs
import numpy as np
import napari  
from skimage import feature
from scipy import ndimage as ndi

# 初始化napari查看器
viewer = napari.Viewer()
# 测试用空间分辨率,按需替换为你的业务图像实际分辨率
spacing = (1, 1, 1)

def add_to_viewer(layer_name, name):
    viewer.add_image(
        layer_name,
        name = name,
        scale = spacing
    )

# 生成3D测试样本
bblobs = BBlobs(n_dim=3)
add_to_viewer(bblobs, '原始图像')

# 3D斑点检测,可调整threshold、min_sigma、max_sigma参数适配你的业务图像
blobs = feature.blob_dog(bblobs, threshold=0.1)

# --------------------------
# 需求1:检测结果添加到napari叠加查看
# --------------------------
# 提取斑点坐标、计算对应直径(3D下半径为sigma*sqrt(3),直径乘2)
coords = blobs[:, :3]  # 格式为(z, y, x)
blob_radii = blobs[:, 3] * np.sqrt(3)
blob_sizes = 2 * blob_radii  # napari Points层size为直径

# 添加Points层,自定义颜色、透明度方便查看
viewer.add_points(
    coords,
    name='检测到的斑点',
    size=blob_sizes,
    scale=spacing,
    face_color='transparent',
    edge_color='red',
    edge_width=0.1
)

# --------------------------
# 需求2:生成二值掩码/标签图像
# --------------------------
# 生成和原图尺寸一致的空数组
binary_mask = np.zeros_like(bblobs, dtype=bool)
label_mask = np.zeros_like(bblobs, dtype=np.uint16)

# 生成3D坐标网格
z_grid, y_grid, x_grid = np.ogrid[:bblobs.shape[0], :bblobs.shape[1], :bblobs.shape[2]]

for idx, blob in enumerate(blobs, start=1):
    z, y, x, sigma = blob
    r = sigma * np.sqrt(3)
    # 计算每个网格点到当前斑点中心的距离
    dist = np.sqrt((z_grid - z)**2 + (y_grid - y)**2 + (x_grid - x)**2)
    # 距离小于半径的区域设为前景
    binary_mask[dist <= r] = True
    label_mask[dist <= r] = idx

# 把掩码也添加到napari查看
add_to_viewer(binary_mask, '斑点二值掩码')
add_to_viewer(label_mask, '斑点标签图')

napari.run()

关键说明

  • 3D场景下blob_dog/blob_log返回的sigma值不能直接作为半径使用,需要乘以sqrt(3)换算得到实际的3D球形斑点半径
  • 业务图像测试时可调整blob_dog的threshold、min_sigma、max_sigma参数,适配实际斑点的大小、对比度
  • 生成的二值掩码、标签图可直接用skimage.io.imsave导出为tif格式使用

内容的提问来源于stack exchange,提问作者Angel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:36:05