blob_boundaries — BLOB 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) 的封閉多邊形。

詳細使用指南

• blob_analysis 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 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 作為輸入)

blob_label · blob_distance

同類別(extract)

blob_region · blob_overlay


*Provenance: blob2d.py — BLOB 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.