如何从skimage.measure.label生成的实例分割图中选取指定标注对象
筛选skimage实例分割标签图中特定标签的方法

你可以直接通过Numpy的布尔索引快速完成筛选,以下是两种需求对应的实现代码:
前置准备
首先确保你已经将标签图读取为整数型Numpy数组,读取时请使用无损方式避免标签值失真:
import numpy as np from skimage import io # 读取标签图 label_img = io.imread("你的标签文件路径.png") # 若读取到的标签图为多通道格式,仅取第一个通道即可 # label_img = label_img[..., 0] # 定义需要保留的目标标签 target_labels = [11, 12, 13]
方案1:保留目标标签的原有值,其余像素设为0
# 生成目标区域掩码 mask = np.isin(label_img, target_labels) # 生成结果:掩码区域保留原标签值,其余为0 result = np.where(mask, label_img, 0)
你可以执行print(np.unique(result))验证结果,输出应为[ 0 11 12 13]。
方案2:所有目标标签统一标注为1,其余像素设为0
# 生成目标区域掩码并转为整数类型即可 result = np.isin(label_img, target_labels).astype(np.uint8)
执行print(np.unique(result))验证结果,输出应为[0 1]。
内容的提问来源于stack exchange,提问作者anad
相关产品推荐
相关产品推荐

