extract op• 数据种类:labels2d → mask
• 调用: import fullseye as fs; fs.ledger.blob_boundaries(labels: 'Any') -> 'np.ndarray'(要直接调用实现,import blob2d; blob2d.blob_boundaries(labels: 'Any') -> 'np.ndarray';从台账取用则 opsblob.get("blob_boundaries"))
物体的轮廓(1 像素宽,bool)。相邻物体之间的分界也会保留。
取内侧边缘(与自身不同标签相邻的前景像素),因此轮廓必定位于物体内部 —— 若取外侧,就等于把相邻物体的像素称作轮廓。
步骤:对标签图像施加 3x3(8 邻域)的灰度腐蚀 lo 和膨胀 hi, (labels > 0) & ((lo != labels) | (hi != labels))。“邻域中有与自身不同编号(包括背景 0)的前景像素”= 内侧 1 像素宽的边缘。只用腐蚀的话,编号较小的物体一侧的分界会消失,因此也看膨胀以保持对称。
• labels:2-D 整数标签图像(blob_label 的输出)。bool / float / 负编号则 ValueError(与 blob_region 相同的约定)。
• 返回值:(H, W) 的 bool。所有物体的边缘叠在 1 张上(若要按物体分开, 先用 blob_region 取出再施加)。
• 与图像边缘相接的物体,由于 scipy 的默认(反射边界)把图像边缘之外视为自身的值, 沿图像边缘的边不会作为边缘输出。
• 1 像素宽的细物体,所有像素都是边缘。
blob_features 的周长用另一种系数法测量,与此边缘的像素数不一致。若要把轮廓当作折线使用,annotate_outline_layout 会返回 (x, y) 的闭合多边形。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• poc_gear_tooth_metrology — py -3.11 examples/poc_gear_tooth_metrology.py
mask 作为输入)extract)*Provenance: blob2d.py — BLOB 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.